Changeset: 92005d29e0c3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/92005d29e0c3
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/rel_predicates.c
        sql/backends/monet5/sql_gencode.c
Branch: Jan2022
Log Message:

Throw right error code for right SQL plans, but MAL translation failure


diffs (truncated from 749 to 300 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
@@ -1641,7 +1641,7 @@ check_types(backend *be, sql_subtype *t,
                }
        }
        if (err) {
-               stmt *res = sql_error(sql, 03, SQLSTATE(42000) "types %s(%u,%u) 
(%s) and %s(%u,%u) (%s) are not equal",
+               stmt *res = sql_error(sql, 10, SQLSTATE(42000) "types %s(%u,%u) 
(%s) and %s(%u,%u) (%s) are not equal",
                        fromtype->type->base.name,
                        fromtype->digits,
                        fromtype->scale,
@@ -3924,7 +3924,7 @@ insert_check_ukey(backend *be, list *ins
 
                                /* foreach column add predicate */
                                if (add_column_predicate(be, c->c) != LOG_OK)
-                                       return sql_error(sql, 02, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                       return sql_error(sql, 10, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
 
                                col = stmt_col(be, c->c, dels, dels->partition);
                                if ((k->type == ukey) && stmt_has_null(col)) {
@@ -3947,7 +3947,7 @@ insert_check_ukey(backend *be, list *ins
 
                                /* foreach column add predicate */
                                if (add_column_predicate(be, c->c) != LOG_OK)
-                                       return sql_error(sql, 02, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                       return sql_error(sql, 10, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
 
                                col = stmt_col(be, c->c, dels, dels->partition);
                                list_append(lje, col);
@@ -4011,7 +4011,7 @@ insert_check_ukey(backend *be, list *ins
 
                /* add predicate for this column */
                if (add_column_predicate(be, c->c) != LOG_OK)
-                       return sql_error(sql, 02, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
+                       return sql_error(sql, 10, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
 
                s = stmt_col(be, c->c, dels, dels->partition);
                if ((k->type == ukey) && stmt_has_null(s)) {
@@ -4083,7 +4083,7 @@ insert_check_fkey(backend *be, list *ins
 
                /* foreach column add predicate */
                if (add_column_predicate(be, c->c) != LOG_OK)
-                       return sql_error(sql, 02, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
+                       return sql_error(sql, 10, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
        }
 
        if (pin && list_length(pin->op4.lval))
@@ -4201,7 +4201,7 @@ sql_insert_check_null(backend *be, sql_t
 
                        /* foreach column add predicate */
                        if (add_column_predicate(be, c) != LOG_OK)
-                               return sql_error(sql, 02, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
+                               return sql_error(sql, 10, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
 
                        if (!(s->key && s->nrcols == 0)) {
                                s = stmt_selectnil(be, column(be, i));
@@ -4279,7 +4279,7 @@ rel2bin_insert(backend *be, sql_rel *rel
 
 /* before */
        if (!sql_insert_triggers(be, t, updates, 0))
-               return sql_error(sql, 02, SQLSTATE(27000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
 
        insert = inserts->op4.lval->h->data;
        if (insert->nrcols == 0) {
@@ -4343,12 +4343,12 @@ rel2bin_insert(backend *be, sql_rel *rel
                return NULL;
 
        if (!sql_insert_triggers(be, t, updates, 1))
-               return sql_error(sql, 02, SQLSTATE(27000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
        /* update predicate list */
        if (rel->r && !rel_predicates(be, rel->r))
                return NULL;
        if (!isNew(t) && isGlobal(t) && !isGlobalTemp(t) && 
sql_trans_add_dependency_change(be->mvc->session->tr, t->base.id, dml) != 
LOG_OK)
-               return sql_error(sql, 02, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               return sql_error(sql, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
 
        if (ddl) {
                ret = ddl;
@@ -5191,12 +5191,12 @@ sql_update(backend *be, sql_table *t, st
        idx_updates = update_idxs_and_check_keys(be, t, rows, updates, l, NULL);
        if (!idx_updates) {
                assert(0);
-               return sql_error(sql, 02, SQLSTATE(42000) "UPDATE: failed to 
update indexes for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(42000) "UPDATE: failed to 
update indexes for table '%s'", t->base.name);
        }
 
 /* before */
        if (!sql_update_triggers(be, t, rows, updates, 0))
-               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
 
 /* apply updates */
        for (i = 0, n = ol_first_node(t->columns); i < nr_cols && n; i++, n = 
n->next) {
@@ -5206,11 +5206,11 @@ sql_update(backend *be, sql_table *t, st
                        append(l, stmt_update_col(be, c, rows, updates[i]));
        }
        if (cascade_updates(be, t, rows, updates))
-               return sql_error(sql, 02, SQLSTATE(42000) "UPDATE: cascade 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(42000) "UPDATE: cascade 
failed for table '%s'", t->base.name);
 
 /* after */
        if (!sql_update_triggers(be, t, rows, updates, 1))
-               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
 
 /* cascade ?? */
        return l;
@@ -5300,7 +5300,7 @@ rel2bin_update(backend *be, sql_rel *rel
        if (!sql_update_triggers(be, t, tids, updates, 0)) {
                if (sql->cascade_action)
                        sql->cascade_action = NULL;
-               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
        }
 
 /* apply the update */
@@ -5315,14 +5315,14 @@ rel2bin_update(backend *be, sql_rel *rel
        if (cascade_updates(be, t, tids, updates)) {
                if (sql->cascade_action)
                        sql->cascade_action = NULL;
-               return sql_error(sql, 02, SQLSTATE(42000) "UPDATE: cascade 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(42000) "UPDATE: cascade 
failed for table '%s'", t->base.name);
        }
 
 /* after */
        if (!sql_update_triggers(be, t, tids, updates, 1)) {
                if (sql->cascade_action)
                        sql->cascade_action = NULL;
-               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
        }
 
        if (ddl) {
@@ -5341,7 +5341,7 @@ rel2bin_update(backend *be, sql_rel *rel
        if (rel->r && !rel_predicates(be, rel->r))
                return NULL;
        if (!isNew(t) && isGlobal(t) && !isGlobalTemp(t) && 
sql_trans_add_dependency_change(be->mvc->session->tr, t->base.id, dml) != 
LOG_OK)
-               return sql_error(sql, 02, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               return sql_error(sql, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
        return cnt;
 }
 
@@ -5531,10 +5531,10 @@ sql_delete(backend *be, sql_table *t, st
 
 /* before */
        if (!sql_delete_triggers(be, t, v, deleted_cols, 0, 1, 3))
-               return sql_error(sql, 02, SQLSTATE(27000) "DELETE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "DELETE: triggers 
failed for table '%s'", t->base.name);
 
        if (!sql_delete_keys(be, t, v, l, "DELETE", 0))
-               return sql_error(sql, 02, SQLSTATE(42000) "DELETE: failed to 
delete indexes for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(42000) "DELETE: failed to 
delete indexes for table '%s'", t->base.name);
 
        if (rows) {
                s = stmt_delete(be, t, rows);
@@ -5546,7 +5546,7 @@ sql_delete(backend *be, sql_table *t, st
 
 /* after */
        if (!sql_delete_triggers(be, t, v, deleted_cols, 1, 1, 3))
-               return sql_error(sql, 02, SQLSTATE(27000) "DELETE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 10, SQLSTATE(27000) "DELETE: triggers 
failed for table '%s'", t->base.name);
        return s;
 }
 
@@ -5584,7 +5584,7 @@ rel2bin_delete(backend *be, sql_rel *rel
        if (rel->r && !rel_predicates(be, rel->r))
                return NULL;
        if (!isNew(t) && isGlobal(t) && !isGlobalTemp(t) && 
sql_trans_add_dependency_change(be->mvc->session->tr, t->base.id, dml) != 
LOG_OK)
-               return sql_error(sql, 02, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               return sql_error(sql, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
 
        return stdelete;
 }
@@ -5649,7 +5649,7 @@ check_for_foreign_key_references(mvc *sq
                                                        if (!found) {
                                                                if ((new_node = 
SA_NEW(sql->ta, struct tablelist)) == NULL) {
                                                                        
list_destroy(keys);
-                                                                       
sql_error(sql, 02, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                                                       
sql_error(sql, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                                                                        *error 
= 1;
                                                                        return;
                                                                }
@@ -5683,7 +5683,7 @@ sql_truncate(backend *be, sql_table *t, 
        stmt **deleted_cols = NULL;
 
        if (!new_list) {
-               sql_error(sql, 02, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               sql_error(sql, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                error = 1;
                goto finalize;
        }
@@ -5715,7 +5715,7 @@ sql_truncate(backend *be, sql_table *t, 
                                        if ((seq = find_sql_sequence(tr, s, 
seq_name))) {
                                                switch 
(sql_trans_sequence_restart(tr, seq, seq->start)) {
                                                        case -1:
-                                                               sql_error(sql, 
02, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                                               sql_error(sql, 
10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                                                                error = 1;
                                                                goto finalize;
                                                        case -2:
@@ -5753,13 +5753,13 @@ sql_truncate(backend *be, sql_table *t, 
 
                /* before */
                if (!sql_delete_triggers(be, next, v, deleted_cols, 0, 3, 4)) {
-                       sql_error(sql, 02, SQLSTATE(27000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
+                       sql_error(sql, 10, SQLSTATE(27000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
                        error = 1;
                        goto finalize;
                }
 
                if (!sql_delete_keys(be, next, v, l, "TRUNCATE", cascade)) {
-                       sql_error(sql, 02, SQLSTATE(42000) "TRUNCATE: failed to 
delete indexes for table '%s'", next->base.name);
+                       sql_error(sql, 10, SQLSTATE(42000) "TRUNCATE: failed to 
delete indexes for table '%s'", next->base.name);
                        error = 1;
                        goto finalize;
                }
@@ -5771,7 +5771,7 @@ sql_truncate(backend *be, sql_table *t, 
 
                /* after */
                if (!sql_delete_triggers(be, next, v, deleted_cols, 1, 3, 4)) {
-                       sql_error(sql, 02, SQLSTATE(27000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
+                       sql_error(sql, 10, SQLSTATE(27000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
                        error = 1;
                        goto finalize;
                }
@@ -5812,7 +5812,7 @@ rel2bin_truncate(backend *be, sql_rel *r
        cascade = E_ATOM_INT(n->next->data);
 
        if (!isNew(t) && isGlobal(t) && !isGlobalTemp(t) && 
sql_trans_add_dependency_change(be->mvc->session->tr, t->base.id, dml) != 
LOG_OK)
-               return sql_error(sql, 02, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               return sql_error(sql, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
 
        truncate = sql_truncate(be, t, restart_sequences, cascade);
        if (sql->cascade_action)
diff --git a/sql/backends/monet5/rel_predicates.c 
b/sql/backends/monet5/rel_predicates.c
--- a/sql/backends/monet5/rel_predicates.c
+++ b/sql/backends/monet5/rel_predicates.c
@@ -70,7 +70,7 @@ rel_find_predicates(visitor *v, sql_rel 
                                                        VALclear(&e2->data);
                                                        _DELETE(e2);
                                                }
-                                               return sql_error(v->sql, 02, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                               return sql_error(v->sql, 10, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
                                        }
 
                                        if 
(sql_trans_add_predicate(v->sql->session->tr, c, e->flag, e1, e2, is_anti(e), 
is_semantics(e)) != LOG_OK) {
@@ -82,7 +82,7 @@ rel_find_predicates(visitor *v, sql_rel 
                                                        VALclear(&e2->data);
                                                        _DELETE(e2);
                                                }
-                                               return sql_error(v->sql, 02, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                               return sql_error(v->sql, 10, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
                                        }
                                        v->changes++;
                                }
@@ -105,7 +105,7 @@ rel_find_predicates(visitor *v, sql_rel 
                                        if (isNew(c))
                                                continue;
                                        if 
(sql_trans_add_predicate(v->sql->session->tr, c, 0, NULL, NULL, false, false) 
!= LOG_OK)
-                                               return sql_error(v->sql, 02, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
+                                               return sql_error(v->sql, 10, 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
                                        v->changes++;
                                }
                        }
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -138,11 +138,11 @@ static int
        backend bebackup;
 
        if (strlen(mod) >= IDLENGTH) {
-               (void) sql_error(m, 02, SQLSTATE(42000) "Module name '%s' too 
large for the backend", mod);
+               (void) sql_error(m, 10, SQLSTATE(42000) "Module name '%s' too 
large for the backend", mod);
                return -1;
        }
        if (strlen(name) >= IDLENGTH) {
-               (void) sql_error(m, 02, SQLSTATE(42000) "Function name '%s' too 
large for the backend", name);
+               (void) sql_error(m, 10, SQLSTATE(42000) "Function name '%s' too 
large for the backend", name);
                return -1;
        }
        symbackup = c->curprg;
@@ -151,7 +151,7 @@ static int
 
        c->curprg = newFunction(putName(mod), putName(name), FUNCTIONsymbol);
        if(c->curprg  == NULL) {
-               sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                res = -1;
                goto cleanup;
        }
@@ -161,7 +161,7 @@ static int
 
        curInstr = relational_func_create_result(m, curBlk, curInstr, r);
        if( curInstr == NULL) {
-               sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
+               sql_error(m, 10, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                res = -1;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to