Changeset: e442478b3b1b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e442478b3b1b
Modified Files:
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_statement.c
Branch: pushcands
Log Message:
More st_table fixes
diffs (63 lines):
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -5864,7 +5864,7 @@ rel2bin_seq(backend *be, sql_rel *rel, l
if (!restart || !sname || !seqname || !seq)
return NULL;
- if (restart->type == st_table) /* relational statement */
+ if (restart->type == st_table &&
!list_empty(restart->op4.relstval->cols)) /* relational statement */
restart = restart->op4.relstval->cols->h->data;
append(l, sname);
append(l, seqname);
diff --git a/sql/backends/monet5/sql_statement.c
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -506,7 +506,7 @@ stmt_table(backend *be, rel_bin_stmt *re
if (s == NULL)
return NULL;
- s->nr = ((stmt*)relst->cols->h->data)->nr;
+ s->nr = !list_empty(relst->cols) ? ((stmt*)relst->cols->h->data)->nr :
0;
s->op4.relstval = relst;
s->flag = temp;
s->nrcols = relst->nrcols;
@@ -3040,8 +3040,11 @@ tail_set_type(stmt *st, sql_subtype *t)
st = st->op4.lval->h->data;
continue;
case st_table:
- st = st->op4.relstval->cols->h->data;
- continue;
+ if (!list_empty(st->op4.relstval->cols)) {
+ st = st->op4.relstval->cols->h->data;
+ continue;
+ }
+ return;
case st_join:
case st_join2:
case st_joinN:
@@ -3688,8 +3691,11 @@ tail_type(stmt *st)
st = st->op1;
continue;
case st_table:
- st = st->op4.relstval->cols->h->data;
- continue;
+ if (!list_empty(st->op4.relstval->cols)) {
+ st = st->op4.relstval->cols->h->data;
+ continue;
+ }
+ return NULL;
case st_list:
st = st->op4.lval->h->data;
continue;
@@ -3858,7 +3864,9 @@ const char *
return sa_strdup(sa, "single_value");
return "single_value";
case st_table:
- return column_name(sa, st->op4.relstval->cols->h->data);
+ if (!list_empty(st->op4.relstval->cols))
+ return column_name(sa, st->op4.relstval->cols->h->data);
+ return NULL;
case st_list:
if (list_length(st->op4.lval))
return column_name(sa, st->op4.lval->h->data);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list