HyriseSQLParser/src/lib/CreateStatement.h

61 lines
1.0 KiB
C
Raw Normal View History

#ifndef __CREATE_STATEMENT_H__
#define __CREATE_STATEMENT_H__
#include "Statement.h"
namespace hsql {
/**
* @struct ColumnDefinition
*/
struct ColumnDefinition {
enum DataType {
TEXT,
INT,
DOUBLE
};
2014-11-26 18:20:10 +01:00
ColumnDefinition(char* name, DataType type) :
name(name),
type(type) {}
virtual ~ColumnDefinition(); // defined in destructors.cpp
char* name;
DataType type;
};
/**
* @struct CreateStatement
* CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE)
* CREATE TABLE students FROM TBL FILE 'test/students.tbl'
*/
struct CreateStatement : Statement {
enum CreateType {
kTable,
kTableFromTbl, // Hyrise file format
};
2014-11-13 01:27:47 +01:00
CreateStatement() :
Statement(kStmtCreate),
if_not_exists(false),
2014-11-26 18:20:10 +01:00
columns(NULL),
2014-11-13 01:27:47 +01:00
file_path(NULL),
table_name(NULL) {};
2014-11-26 18:20:10 +01:00
virtual ~CreateStatement(); // defined in destructors.cpp
CreateType create_type;
bool if_not_exists;
2014-11-26 18:20:10 +01:00
List<ColumnDefinition*>* columns;
const char* file_path;
const char* table_name;
};
} // namespace hsql
#endif