HyriseSQLParser/src/lib/statements/CreateStatement.h

68 lines
1.1 KiB
C
Raw Normal View History

#ifndef __CREATE_STATEMENT_H__
#define __CREATE_STATEMENT_H__
2014-12-03 17:43:02 +01:00
#include "SQLStatement.h"
namespace hsql {
/**
* @struct ColumnDefinition
2014-12-15 18:32:46 +01:00
* @brief Represents definition of a table column
*/
struct ColumnDefinition {
enum DataType {
TEXT,
INT,
DOUBLE
};
2014-11-26 18:20:10 +01:00
ColumnDefinition(char* name, DataType type) :
name(name),
type(type) {}
2014-12-15 18:32:46 +01:00
virtual ~ColumnDefinition() {
delete name;
}
2014-11-26 18:20:10 +01:00
char* name;
DataType type;
};
2014-12-15 18:32:46 +01:00
/**
* @struct CreateStatement
2014-12-15 18:32:46 +01:00
* @brief Represents "CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE)"
*/
2014-12-03 17:43:02 +01:00
struct CreateStatement : SQLStatement {
enum CreateType {
kTable,
kTableFromTbl, // Hyrise file format
};
2014-12-03 17:43:02 +01:00
CreateStatement(CreateType type) :
SQLStatement(kStmtCreate),
type(type),
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
2014-12-15 18:32:46 +01:00
virtual ~CreateStatement() {
delete columns;
delete file_path;
delete table_name;
}
2014-12-03 17:43:02 +01:00
CreateType 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