Changeset: bea33ccbab2e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bea33ccbab2e
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/server/rel_exp.c
        sql/server/rel_partition.c
        sql/server/rel_propagate.c
        sql/server/rel_psm.c
        sql/server/rel_select.c
        sql/server/sql_partition.c
Branch: Jan2022
Log Message:

Use faster mvc_highwater call for stack overflows


diffs (237 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
@@ -1110,7 +1110,7 @@ exp_bin(backend *be, sql_exp *e, stmt *l
        mvc *sql = be->mvc;
        stmt *s = NULL;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(be->mvc, 10, SQLSTATE(42000) "Query too 
complex: running out of stack space");
 
        if (!e) {
@@ -1868,7 +1868,7 @@ exp2bin_args(backend *be, sql_exp *e, li
 {
        mvc *sql = be->mvc;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (!e || !args)
@@ -1948,7 +1948,7 @@ exps2bin_args(backend *be, list *exps, l
 static list *
 rel2bin_args(backend *be, sql_rel *rel, list *args)
 {
-       if (THRhighwater())
+       if (mvc_highwater(be->mvc))
                return sql_error(be->mvc, 10, SQLSTATE(42000) "Query too 
complex: running out of stack space");
 
        if (!rel || !args)
@@ -5601,7 +5601,7 @@ check_for_foreign_key_references(mvc *sq
        sql_trans *tr = sql->session->tr;
        sqlstore *store = sql->session->tr->store;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (t->keys) { /* Check for foreign key references */
@@ -6292,7 +6292,7 @@ subrel_bin(backend *be, sql_rel *rel, li
        mvc *sql = be->mvc;
        stmt *s = NULL;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(be->mvc, 10, SQLSTATE(42000) "Query too 
complex: running out of stack space");
 
        if (!rel)
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -2729,7 +2729,7 @@ exps_copy(mvc *sql, list *exps)
 {
        list *nl;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (!exps)
@@ -2751,7 +2751,7 @@ exp_copy(mvc *sql, sql_exp * e)
 {
        sql_exp *l, *r, *r2, *ne = NULL;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (!e)
@@ -3180,7 +3180,7 @@ exp_values_set_supertype(mvc *sql, sql_e
 static int
 exp_set_list_recurse(mvc *sql, sql_subtype *type, sql_exp *e, const char 
**relname, const char** expname)
 {
-       if (THRhighwater()) {
+       if (mvc_highwater(sql)) {
                (void) sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
                return -1;
        }
@@ -3219,7 +3219,7 @@ exp_set_list_recurse(mvc *sql, sql_subty
 static int
 exp_set_type_recurse(mvc *sql, sql_subtype *type, sql_exp *e, const char 
**relname, const char** expname)
 {
-       if (THRhighwater()) {
+       if (mvc_highwater(sql)) {
                (void) sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
                return -1;
        }
@@ -3311,7 +3311,7 @@ exp_set_type_recurse(mvc *sql, sql_subty
 int
 rel_set_type_recurse(mvc *sql, sql_subtype *type, sql_rel *rel, const char 
**relname, const char **expname)
 {
-       if (THRhighwater()) {
+       if (mvc_highwater(sql)) {
                (void) sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
                return -1;
        }
diff --git a/sql/server/rel_partition.c b/sql/server/rel_partition.c
--- a/sql/server/rel_partition.c
+++ b/sql/server/rel_partition.c
@@ -39,7 +39,7 @@ rel_getcount(mvc *sql, sql_rel *rel)
 static void
 find_basetables(mvc *sql, sql_rel *rel, list *tables )
 {
-       if (THRhighwater()) {
+       if (mvc_highwater(sql)) {
                (void) sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
                return;
        }
@@ -157,7 +157,7 @@ has_groupby(sql_rel *rel)
 sql_rel *
 rel_partition(mvc *sql, sql_rel *rel)
 {
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (is_basetable(rel->op)) {
diff --git a/sql/server/rel_propagate.c b/sql/server/rel_propagate.c
--- a/sql/server/rel_propagate.c
+++ b/sql/server/rel_propagate.c
@@ -446,7 +446,7 @@ static sql_rel* rel_change_base_table(mv
 static sql_exp*
 exp_change_column_table(mvc *sql, sql_exp *e, sql_table* oldt, sql_table* newt)
 {
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (!e)
@@ -522,7 +522,7 @@ exp_change_column_table(mvc *sql, sql_ex
 static sql_rel*
 rel_change_base_table(mvc* sql, sql_rel* rel, sql_table* oldt, sql_table* newt)
 {
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (!rel)
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -619,7 +619,7 @@ sequential_block(sql_query *query, sql_s
 
        assert(!restype || !restypelist);
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (blk->h)
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
@@ -33,7 +33,7 @@ rel_table_projections( mvc *sql, sql_rel
 {
        list *exps;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (!rel)
@@ -2207,7 +2207,7 @@ rel_logical_value_exp(sql_query *query, 
        if (!sc)
                return NULL;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        switch (sc->token) {
@@ -2480,7 +2480,7 @@ rel_logical_exp(sql_query *query, sql_re
        if (!sc)
                return NULL;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        switch (sc->token) {
@@ -4252,7 +4252,7 @@ rel_groupings(sql_query *query, sql_rel 
        mvc *sql = query->sql;
        list *exps = new_exp_list(sql->sa);
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        for (dnode *o = groupby->data.lval->h; o; o = o->next) {
@@ -4671,7 +4671,7 @@ get_window_clauses(mvc *sql, char* ident
        char *window_ident;
        int pos;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if ((window_specification = frame_get_window_def(sql, ident, &pos)) == 
NULL)
@@ -5067,7 +5067,7 @@ rel_value_exp2(sql_query *query, sql_rel
        if (!se)
                return NULL;
 
-       if (THRhighwater())
+       if (mvc_highwater(sql))
                return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
 
        if (rel && *rel && (*rel)->card == CARD_AGGR) { /* group by expression 
case, handle it before */
@@ -5229,7 +5229,7 @@ rel_value_exp(sql_query *query, sql_rel 
 
        if (se->token == SQL_SELECT)
                sn = (SelectNode*)se;
-       if (THRhighwater())
+       if (mvc_highwater(query->sql))
                return sql_error(query->sql, 10, SQLSTATE(42000) "Query too 
complex: running out of stack space");
 
        e = rel_value_exp2(query, rel, se, f, ek);
diff --git a/sql/server/sql_partition.c b/sql/server/sql_partition.c
--- a/sql/server/sql_partition.c
+++ b/sql/server/sql_partition.c
@@ -104,7 +104,7 @@ static void exp_find_table_columns(mvc *
 static void
 rel_find_table_columns(mvc* sql, sql_rel* rel, sql_table *t, list *cols)
 {
-       if (THRhighwater()) {
+       if (mvc_highwater(sql)) {
                (void) sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
                return;
        }
@@ -172,7 +172,7 @@ rel_find_table_columns(mvc* sql, sql_rel
 static void
 exp_find_table_columns(mvc *sql, sql_exp *e, sql_table *t, list *cols)
 {
-       if (THRhighwater()) {
+       if (mvc_highwater(sql)) {
                (void) sql_error(sql, 10, SQLSTATE(42000) "Query too complex: 
running out of stack space");
                return;
        }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to