diff options
Diffstat (limited to 'query.h')
-rw-r--r-- | query.h | 27 |
1 files changed, 22 insertions, 5 deletions
@@ -19,23 +19,40 @@ struct WhereClause{ struct QueryResult{ int res; vector<Row> rows; + string msg; //empty message indicates success QueryResult(void); QueryResult(int); QueryResult(int,const vector<Row>&); + QueryResult(int,const vector<Row>&,const string&); + QueryResult(int,const string&); }; struct Query{ - string from; - int limit; //-1=unlimited - Query(void); - virtual QueryResult execute(const map<string,Table>&); + string tablename; + virtual QueryResult execute(map<string,Table>&); +}; + +struct CreateQuery : public Query{ + int nc; + ColHeader *header; + CreateQuery(void); + void setHeader(const ColHeader *hd); + QueryResult execute(map<string,Table> &tables); }; struct FindQuery : public Query{ + unsigned int limit; //-1=unlimited int sort; //0=no sort, 1=sort, -1=reverse sort vector<WhereClause> where; FindQuery(void); - QueryResult execute(const map<string,Table>&); + QueryResult execute(map<string,Table> &tables); +}; + +struct InsertQuery : public Query{ + Row row; + InsertQuery(const Row &_r); + InsertQuery(Row &&_r); + QueryResult execute(map<string,Table> &tables); }; |