Changeset: d0b460563bb1 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d0b460563bb1
Added Files:
sql/server/sql_query.c
sql/server/sql_query.h
Modified Files:
sql/server/rel_select.c
Branch: subquery
Log Message:
add missing files
diffs (82 lines):
diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c
--- a/sql/server/rel_select.c
+++ b/sql/server/rel_select.c
@@ -3792,7 +3792,8 @@ rel_bind_groupby(sql_query *query, sql_r
if (!groupby)
return NULL;
if (!groupby->l) {
- *rel = groupby = rel_project2groupby(sql, groupby);
+ if (groupby->op != op_groupby)
+ *rel = groupby = rel_project2groupby(sql, groupby);
return groupby;
}
l = groupby->l;
diff --git a/sql/server/sql_query.c b/sql/server/sql_query.c
new file mode 100644
--- /dev/null
+++ b/sql/server/sql_query.c
@@ -0,0 +1,39 @@
+
+#include "monetdb_config.h"
+#include "sql_query.h"
+
+sql_query *
+query_create( mvc *sql)
+{
+ sql_query *q = SA_NEW(sql->sa, sql_query);
+
+ q->sql = sql;
+ q->outer = sql_stack_new(sql->sa, 32);
+ return q;
+}
+
+void
+query_push_outer(sql_query *q, sql_rel *r)
+{
+ assert(r);
+ sql_stack_push(q->outer, r);
+}
+
+sql_rel *
+query_pop_outer(sql_query *q)
+{
+ sql_rel *r = sql_stack_pop(q->outer);
+ return r;
+}
+
+sql_rel *
+query_fetch_outer(sql_query *q, int i)
+{
+ return sql_stack_peek(q->outer, i);
+}
+
+int
+query_has_outer(sql_query *q)
+{
+ return !sql_stack_empty(q->outer);
+}
diff --git a/sql/server/sql_query.h b/sql/server/sql_query.h
new file mode 100644
--- /dev/null
+++ b/sql/server/sql_query.h
@@ -0,0 +1,20 @@
+#ifndef _SQL_QUERY_H_
+#define _SQL_QUERY_H_
+
+#include "sql_relation.h"
+#include "sql_stack.h"
+#include "sql_mvc.h"
+
+typedef struct sql_query {
+ mvc *sql;
+ sql_stack *outer;
+} sql_query;
+
+extern sql_query *query_create(mvc *sql);
+extern void query_push_outer(sql_query *q, sql_rel *r);
+extern sql_rel *query_pop_outer(sql_query *q);
+extern sql_rel *query_fetch_outer(sql_query *q, int i);
+extern int query_has_outer(sql_query *q);
+
+#endif
+
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list