2017-04-06 18:27:47 +02:00
|
|
|
#ifndef __SQLPARSER__SQLSTATEMENT_H__
|
|
|
|
#define __SQLPARSER__SQLSTATEMENT_H__
|
2014-10-20 22:33:36 +02:00
|
|
|
|
2015-01-06 15:29:18 +01:00
|
|
|
#include <vector>
|
2014-10-09 01:30:22 +02:00
|
|
|
|
2017-07-21 02:47:45 +02:00
|
|
|
#include "Expr.h"
|
|
|
|
|
2014-10-31 18:36:02 +01:00
|
|
|
namespace hsql {
|
2017-02-08 02:06:15 +01:00
|
|
|
enum StatementType {
|
|
|
|
kStmtError, // unused
|
|
|
|
kStmtSelect,
|
|
|
|
kStmtImport,
|
|
|
|
kStmtInsert,
|
|
|
|
kStmtUpdate,
|
|
|
|
kStmtDelete,
|
|
|
|
kStmtCreate,
|
|
|
|
kStmtDrop,
|
|
|
|
kStmtPrepare,
|
|
|
|
kStmtExecute,
|
|
|
|
kStmtExport,
|
|
|
|
kStmtRename,
|
2017-08-23 23:09:02 +02:00
|
|
|
kStmtAlter,
|
|
|
|
kStmtShow
|
2017-02-08 02:06:15 +01:00
|
|
|
};
|
2016-02-27 15:01:06 +01:00
|
|
|
|
2017-04-21 16:15:07 +02:00
|
|
|
// Base struct for every SQL statement
|
2017-02-08 02:06:15 +01:00
|
|
|
struct SQLStatement {
|
2017-04-21 16:15:07 +02:00
|
|
|
|
2017-02-08 02:06:15 +01:00
|
|
|
SQLStatement(StatementType type);
|
2016-02-27 15:01:06 +01:00
|
|
|
|
2017-02-08 02:06:15 +01:00
|
|
|
virtual ~SQLStatement();
|
2016-02-27 15:01:06 +01:00
|
|
|
|
2017-04-07 15:47:51 +02:00
|
|
|
StatementType type() const;
|
|
|
|
|
|
|
|
bool isType(StatementType type) const;
|
2016-02-27 15:01:06 +01:00
|
|
|
|
2017-04-21 16:15:07 +02:00
|
|
|
// Shorthand for isType(type).
|
|
|
|
bool is(StatementType type) const;
|
|
|
|
|
2018-01-17 15:43:38 +01:00
|
|
|
// Length of the string in the SQL query string
|
|
|
|
size_t stringLength;
|
|
|
|
|
2017-06-06 03:49:41 +02:00
|
|
|
std::vector<Expr*>* hints;
|
|
|
|
|
2017-02-08 02:06:15 +01:00
|
|
|
private:
|
2017-02-08 03:07:51 +01:00
|
|
|
StatementType type_;
|
2017-04-21 16:15:07 +02:00
|
|
|
|
2017-02-08 02:06:15 +01:00
|
|
|
};
|
2014-10-09 01:30:22 +02:00
|
|
|
|
2014-10-31 18:36:02 +01:00
|
|
|
} // namespace hsql
|
2017-04-21 16:15:07 +02:00
|
|
|
|
2017-04-06 18:27:47 +02:00
|
|
|
#endif // __SQLPARSER__SQLSTATEMENT_H__
|