Changeset: 70970e97a7f2 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/70970e97a7f2
Modified Files:
sql/backends/monet5/sql_statement.h
Branch: pushcands
Log Message:
Use C union
diffs (40 lines):
diff --git a/sql/backends/monet5/sql_statement.h
b/sql/backends/monet5/sql_statement.h
--- a/sql/backends/monet5/sql_statement.h
+++ b/sql/backends/monet5/sql_statement.h
@@ -18,16 +18,26 @@
typedef struct rel_bin_stmt {
list *cols;
- struct rel_bin_stmt *left, *right;
- /* TODO this has to move into a C union */
- struct stmt *cand, /* optional candidate list */
- *grp, /* groups */
- *ext, /* group extents */
- *cnt, /* group counts */
- *jl, /* left result of the join */
- *jr, /* right result of the join (not used in semijoins) */
- *ld, /* left difference of the join for left and full outer
joins */
- *rd; /* right difference of the join for right and full outer
joins */
+
+ struct stmt *cand; /* optional candidate list */
+
+ union {
+ struct { /* group results */
+ struct stmt
+ *grp, /* groups */
+ *ext, /* group extents */
+ *cnt; /* group counts */
+ };
+ struct { /* join results */
+ struct rel_bin_stmt *left, *right; /* the left and
right input relations for joins */
+ struct stmt
+ *jl, /* left result of the join */
+ *jr, /* right result of the join (not used in
semi-joins) */
+ *ld, /* left difference of the join for left
and full outer joins */
+ *rd; /* right difference of the join for right
and full outer joins */
+ };
+ };
+
unsigned int
nrcols:2,
key:1,
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list