aboutsummaryrefslogtreecommitdiff
path: root/query.h
diff options
context:
space:
mode:
Diffstat (limited to 'query.h')
-rw-r--r--query.h27
1 files changed, 22 insertions, 5 deletions
diff --git a/query.h b/query.h
index d19494e..5018f9d 100644
--- a/query.h
+++ b/query.h
@@ -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);
};