Changeset: 6982dbe94745 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6982dbe94745
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_result.c
        sql/test/Tests/truncate-statements-extra.stable.err
Branch: default
Log Message:

Correct SQLSTATE(42000) code for failed triggers to SQLSTATE(27000) and for 
Fkey constraint violation to SQLSTATE(23000).
Add missing SQLSTATE(HY001) code for failed mallocs in sql_result.c


diffs (223 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
@@ -3517,11 +3517,11 @@ rel2bin_insert(backend *be, sql_rel *rel
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_insert_triggers(be, up, updates, 0))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"INSERT INTO: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"INSERT INTO: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_insert_triggers(be, t, updates, 0)) 
-               return sql_error(sql, 02, SQLSTATE(42000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, SQLSTATE(27000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
 
        if (t->idxs.set)
        for (n = t->idxs.set->h; n && m; n = n->next, m = m->next) {
@@ -3557,11 +3557,11 @@ rel2bin_insert(backend *be, sql_rel *rel
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_insert_triggers(be, up, updates, 1))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"INSERT INTO: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"INSERT INTO: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_insert_triggers(be, t, updates, 1)) 
-               return sql_error(sql, 02, SQLSTATE(42000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, SQLSTATE(27000) "INSERT INTO: 
triggers failed for table '%s'", t->base.name);
        if (ddl) {
                ret = ddl;
                list_prepend(l, ddl);
@@ -4430,11 +4430,11 @@ sql_update(backend *be, sql_table *t, st
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_update_triggers(be, up, rows, updates, 0))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_update_triggers(be, t, rows, updates, 0)) 
-               return sql_error(sql, 02, SQLSTATE(42000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
 
 /* apply updates */
        for (i = 0, n = t->columns.set->h; i < nr_cols && n; i++, n = n->next) 
{ 
@@ -4450,11 +4450,11 @@ sql_update(backend *be, sql_table *t, st
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_update_triggers(be, up, rows, updates, 1))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_update_triggers(be, t, rows, updates, 1)) 
-               return sql_error(sql, 02, SQLSTATE(42000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
 
 /* cascade ?? */
        return l;
@@ -4540,11 +4540,11 @@ rel2bin_update(backend *be, sql_rel *rel
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_update_triggers(be, up, tids, updates, 0))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_update_triggers(be, t, tids, updates, 0)) 
-               return sql_error(sql, 02, SQLSTATE(42000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
 
 /* apply the update */
        for (m = rel->exps->h; m; m = m->next) {
@@ -4562,11 +4562,11 @@ rel2bin_update(backend *be, sql_rel *rel
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_update_triggers(be, up, tids, updates, 1))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"UPDATE: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_update_triggers(be, t, tids, updates, 1)) 
-               return sql_error(sql, 02, SQLSTATE(42000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, SQLSTATE(27000) "UPDATE: triggers 
failed for table '%s'", t->base.name);
 
        if (ddl) {
                list_prepend(l, ddl);
@@ -4749,11 +4749,11 @@ sql_delete(backend *be, sql_table *t, st
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_delete_triggers(be, up, v, 0, 1, 3))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"DELETE: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"DELETE: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_delete_triggers(be, t, v, 0, 1, 3))
-               return sql_error(sql, 02, SQLSTATE(42000) "DELETE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, 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);
@@ -4773,11 +4773,11 @@ sql_delete(backend *be, sql_table *t, st
        if(be->cur_append && !be->first_statement_generated) {
                for(sql_table *up = t->p ; up ; up = up->p) {
                        if (!sql_delete_triggers(be, up, v, 1, 1, 3))
-                               return sql_error(sql, 02, SQLSTATE(42000) 
"DELETE: triggers failed for table '%s'", up->base.name);
+                               return sql_error(sql, 02, SQLSTATE(27000) 
"DELETE: triggers failed for table '%s'", up->base.name);
                }
        }
        if (!sql_delete_triggers(be, t, v, 1, 1, 3))
-               return sql_error(sql, 02, SQLSTATE(42000) "DELETE: triggers 
failed for table '%s'", t->base.name);
+               return sql_error(sql, 02, SQLSTATE(27000) "DELETE: triggers 
failed for table '%s'", t->base.name);
        if (rows)
                s = stmt_aggr(be, rows, NULL, NULL, sql_bind_aggr(sql->sa, 
sql->session->schema, "count", NULL), 1, 0, 1);
        if(be->cur_append) //building the total number of rows affected across 
all tables
@@ -4847,7 +4847,7 @@ check_for_foreign_key_references(mvc *sq
                                                        size_t n_deletes = 
store_funcs.count_del(sql->session->tr, c->t);
                                                        assert (n_rows >= 
n_deletes);
                                                        if(n_rows - n_deletes > 
0) {
-                                                               sql_error(sql, 
02, SQLSTATE(42000) "TRUNCATE: FOREIGN KEY %s.%s depends on %s", 
k->t->base.name, k->base.name, t->base.name);
+                                                               sql_error(sql, 
02, SQLSTATE(23000) "TRUNCATE: FOREIGN KEY %s.%s depends on %s", 
k->t->base.name, k->base.name, t->base.name);
                                                                *error = 1;
                                                                return;
                                                        }
@@ -4938,14 +4938,14 @@ sql_truncate(backend *be, sql_table *t, 
                if(be->cur_append && !be->first_statement_generated) {
                        for(sql_table *up = t->p ; up ; up = up->p) {
                                if (!sql_delete_triggers(be, up, v, 0, 3, 4)) {
-                                       sql_error(sql, 02, SQLSTATE(42000) 
"TRUNCATE: triggers failed for table '%s'", up->base.name);
+                                       sql_error(sql, 02, SQLSTATE(27000) 
"TRUNCATE: triggers failed for table '%s'", up->base.name);
                                        error = 1;
                                        goto finalize;
                                }
                        }
                }
                if (!sql_delete_triggers(be, next, v, 0, 3, 4)) {
-                       sql_error(sql, 02, SQLSTATE(42000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
+                       sql_error(sql, 02, SQLSTATE(27000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
                        error = 1;
                        goto finalize;
                }
@@ -4965,14 +4965,14 @@ sql_truncate(backend *be, sql_table *t, 
                if(be->cur_append && !be->first_statement_generated) {
                        for(sql_table *up = t->p ; up ; up = up->p) {
                                if (!sql_delete_triggers(be, up, v, 1, 3, 4)) {
-                                       sql_error(sql, 02, SQLSTATE(42000) 
"TRUNCATE: triggers failed for table '%s'", up->base.name);
+                                       sql_error(sql, 02, SQLSTATE(27000) 
"TRUNCATE: triggers failed for table '%s'", up->base.name);
                                        error = 1;
                                        goto finalize;
                                }
                        }
                }
                if (!sql_delete_triggers(be, next, v, 1, 3, 4)) {
-                       sql_error(sql, 02, SQLSTATE(42000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
+                       sql_error(sql, 02, SQLSTATE(27000) "TRUNCATE: triggers 
failed for table '%s'", next->base.name);
                        error = 1;
                        goto finalize;
                }
diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -925,7 +925,7 @@ mvc_import_table(Client cntxt, BAT ***ba
                };
                fmt = GDKzalloc(sizeof(Column) * (as.nr_attrs + 1));
                if (fmt == NULL) {
-                       sql_error(m, 500, "failed to allocate memory ");
+                       sql_error(m, 500, SQLSTATE(HY001) MAL_MALLOC_FAIL);
                        return NULL;
                }
                as.format = fmt;
@@ -954,7 +954,7 @@ mvc_import_table(Client cntxt, BAT ***ba
                                }
                                GDKfree(fmt[i].type);
                                GDKfree(fmt[i].data);
-                               sql_error(m, 500, "failed to allocate space for 
column");
+                               sql_error(m, 500, SQLSTATE(HY001) "failed to 
allocate space for column");
                                return NULL;
                        }
                        fmt[i].c = NULL;
@@ -998,7 +998,7 @@ mvc_import_table(Client cntxt, BAT ***ba
                                                        GDKfree(fmt[j].data);
                                                        
BBPunfix(fmt[j].c->batCacheid);
                                                }
-                                               sql_error(m, 500, "failed to 
allocate space for column");
+                                               sql_error(m, 500, 
SQLSTATE(HY001) "failed to allocate space for column");
                                                return NULL;
                                        }
                                }
@@ -1011,7 +1011,7 @@ mvc_import_table(Client cntxt, BAT ***ba
                                (best || !as.error))) {
                                *bats = (BAT**) GDKzalloc(sizeof(BAT *) * 
as.nr_attrs);
                                if ( *bats == NULL){
-                                       sql_error(m, 500, "failed to allocate 
space for column");
+                                       sql_error(m, 500, SQLSTATE(HY001) 
"failed to allocate space for column");
                                        TABLETdestroy_format(&as);
                                        return NULL;
                                }
@@ -1820,7 +1820,7 @@ mvc_export_table(backend *b, stream *s, 
        if(fmt == NULL || tres == NULL) {
                GDKfree(fmt);
                GDKfree(tres);
-               sql_error(m, 500, "failed to allocate space");
+               sql_error(m, 500, SQLSTATE(HY001) MAL_MALLOC_FAIL);
                return -1;
        }
 
diff --git a/sql/test/Tests/truncate-statements-extra.stable.err 
b/sql/test/Tests/truncate-statements-extra.stable.err
--- a/sql/test/Tests/truncate-statements-extra.stable.err
+++ b/sql/test/Tests/truncate-statements-extra.stable.err
@@ -31,11 +31,11 @@ stderr of test 'truncate-statements-extr
 MAPI  = (monetdb) /var/tmp/mtest-16076/.s.monetdb.38199
 QUERY = TRUNCATE testing4; --error
 ERROR = !TRUNCATE: FOREIGN KEY testing5.a_fkey depends on testing4
-CODE  = 42000
+CODE  = 23000
 MAPI  = (monetdb) /var/tmp/mtest-27738/.s.monetdb.37422
 QUERY = TRUNCATE testing4  RESTRICT; --error
 ERROR = !TRUNCATE: FOREIGN KEY testing5.a_fkey depends on testing4
-CODE  = 42000
+CODE  = 23000
 
 
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to