Changeset: 6ba39f731bf9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/6ba39f731bf9
Branch: default
Log Message:

Merged with Jan2022


diffs (truncated from 1172 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -9258,7 +9258,6 @@
 [ "shp",       "attach",       "unsafe pattern shp.attach(X_0:str):void ",     
"SHPattach;",   "Register an ESRI Shapefile in the vault catalog"       ]
 [ "shp",       "import",       "unsafe pattern shp.import(X_0:int):void ",     
"SHPimport;",   "Import an ESRI Shapefile with given id into the vault" ]
 [ "shp",       "import",       "unsafe pattern shp.import(X_0:int, 
X_1:wkb):void ",    "SHPpartialimport;",    "Partially import an ESRI Shapefile 
with given id into the vault"       ]
-[ "sql",       "abort",        "unsafe pattern sql.abort():void ",     
"SQLabort;",    "Trigger the abort operation for a MAL block"   ]
 [ "sql",       "affectedRows", "unsafe pattern sql.affectedRows(X_0:int, 
X_1:lng):int ",       "mvc_affected_rows_wrap;",      "export the number of 
affected rows by the current query"       ]
 [ "sql",       "all",  "pattern sql.all(X_0:bit, X_1:bit, X_2:bit):bit ",      
"SQLall_cmp;",  "if !cmp then false, (nl or nr) then nil, else true"    ]
 [ "sql",       "alpha",        "command sql.alpha(X_0:dbl, X_1:dbl):dbl ",     
"SQLcst_alpha_cst;",    "Implementation of astronomy alpha function: expands 
the radius theta depending on the declination"     ]
@@ -9293,7 +9292,6 @@
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int, X_5:int, X_6:int):bat[:any_1] ",  
"mvc_bind_idxbat_wrap;",        "Bind the 'schema.table.index' BAT with access 
kind:\n0 - base table\n1 - inserts\n2 - updates" ]
 [ "sql",       "claim",        "unsafe pattern sql.claim(X_0:int, X_1:str, 
X_2:str, X_3:lng) (X_4:oid, X_5:bat[:oid]) ",       "mvc_claim_wrap;",      
"Claims slots for appending rows."      ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(X_0:str, 
X_1:str):lng ",        "mvc_clear_table_wrap;",        "Clear the table 
sname.tname."  ]
-[ "sql",       "commit",       "unsafe pattern sql.commit():void ",    
"SQLcommit;",   "Trigger the commit operation for a MAL block"  ]
 [ "sql",       "copy_from",    "unsafe pattern sql.copy_from(X_0:ptr, X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:lng, X_7:lng, X_8:int, X_9:str, 
X_10:int, X_11:int):bat[:any]... ",     "mvc_import_table_wrap;",       "Import 
a table from bstream s with the \ngiven tuple and seperators (sep/rsep)"        
]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (X_0:bat[:lng], 
X_1:bat[:int], X_2:bat[:str], X_3:bat[:str]) ",     "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "unsafe pattern 
sql.copy_rejects_clear():void ",        "COPYrejects_clear;",   ""      ]
@@ -9461,8 +9459,6 @@
 [ "sql",       "suspend_log_flushing", "unsafe pattern 
sql.suspend_log_flushing():void ",      "SQLsuspend_log_flushing;",     
"Suspend WAL log flushing"      ]
 [ "sql",       "tid",  "pattern sql.tid(X_0:int, X_1:str, X_2:str):bat[:oid] 
",        "SQLtid;",      "Return a column with the valid tuple identifiers 
associated with the table sname.tname."       ]
 [ "sql",       "tid",  "pattern sql.tid(X_0:int, X_1:str, X_2:str, X_3:int, 
X_4:int):bat[:oid] ",      "SQLtid;",      "Return the tables tid column." ]
-[ "sql",       "transaction",  "unsafe pattern sql.transaction():void ",       
"SQLtransaction2;",     "Start an autocommit transaction"       ]
-[ "sql",       "transaction",  "unsafe pattern sql.transaction():void ",       
"SQLtransaction2;",     "Start an autocommit transaction"       ]
 [ "sql",       "transaction_begin",    "unsafe pattern 
sql.transaction_begin(X_0:int, X_1:str):void ", "SQLtransaction_begin;",        
"A transaction statement (type can be commit,release,rollback or start)"        
]
 [ "sql",       "transaction_commit",   "unsafe pattern 
sql.transaction_commit(X_0:int, X_1:str):void ",        
"SQLtransaction_commit;",       "A transaction statement (type can be 
commit,release,rollback or start)"        ]
 [ "sql",       "transaction_release",  "unsafe pattern 
sql.transaction_release(X_0:int, X_1:str):void ",       
"SQLtransaction_release;",      "A transaction statement (type can be 
commit,release,rollback or start)"        ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -12558,7 +12558,6 @@
 [ "shp",       "attach",       "unsafe pattern shp.attach(X_0:str):void ",     
"SHPattach;",   "Register an ESRI Shapefile in the vault catalog"       ]
 [ "shp",       "import",       "unsafe pattern shp.import(X_0:int):void ",     
"SHPimport;",   "Import an ESRI Shapefile with given id into the vault" ]
 [ "shp",       "import",       "unsafe pattern shp.import(X_0:int, 
X_1:wkb):void ",    "SHPpartialimport;",    "Partially import an ESRI Shapefile 
with given id into the vault"       ]
-[ "sql",       "abort",        "unsafe pattern sql.abort():void ",     
"SQLabort;",    "Trigger the abort operation for a MAL block"   ]
 [ "sql",       "affectedRows", "unsafe pattern sql.affectedRows(X_0:int, 
X_1:lng):int ",       "mvc_affected_rows_wrap;",      "export the number of 
affected rows by the current query"       ]
 [ "sql",       "all",  "pattern sql.all(X_0:bit, X_1:bit, X_2:bit):bit ",      
"SQLall_cmp;",  "if !cmp then false, (nl or nr) then nil, else true"    ]
 [ "sql",       "alpha",        "command sql.alpha(X_0:dbl, X_1:dbl):dbl ",     
"SQLcst_alpha_cst;",    "Implementation of astronomy alpha function: expands 
the radius theta depending on the declination"     ]
@@ -12595,7 +12594,6 @@
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(X_0:int, X_1:str, 
X_2:str, X_3:str, X_4:int, X_5:int, X_6:int):bat[:any_1] ",  
"mvc_bind_idxbat_wrap;",        "Bind the 'schema.table.index' BAT with access 
kind:\n0 - base table\n1 - inserts\n2 - updates" ]
 [ "sql",       "claim",        "unsafe pattern sql.claim(X_0:int, X_1:str, 
X_2:str, X_3:lng) (X_4:oid, X_5:bat[:oid]) ",       "mvc_claim_wrap;",      
"Claims slots for appending rows."      ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(X_0:str, 
X_1:str):lng ",        "mvc_clear_table_wrap;",        "Clear the table 
sname.tname."  ]
-[ "sql",       "commit",       "unsafe pattern sql.commit():void ",    
"SQLcommit;",   "Trigger the commit operation for a MAL block"  ]
 [ "sql",       "copy_from",    "unsafe pattern sql.copy_from(X_0:ptr, X_1:str, 
X_2:str, X_3:str, X_4:str, X_5:str, X_6:lng, X_7:lng, X_8:int, X_9:str, 
X_10:int, X_11:int):bat[:any]... ",     "mvc_import_table_wrap;",       "Import 
a table from bstream s with the \ngiven tuple and seperators (sep/rsep)"        
]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (X_0:bat[:lng], 
X_1:bat[:int], X_2:bat[:str], X_3:bat[:str]) ",     "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "unsafe pattern 
sql.copy_rejects_clear():void ",        "COPYrejects_clear;",   ""      ]
@@ -12778,8 +12776,6 @@
 [ "sql",       "suspend_log_flushing", "unsafe pattern 
sql.suspend_log_flushing():void ",      "SQLsuspend_log_flushing;",     
"Suspend WAL log flushing"      ]
 [ "sql",       "tid",  "pattern sql.tid(X_0:int, X_1:str, X_2:str):bat[:oid] 
",        "SQLtid;",      "Return a column with the valid tuple identifiers 
associated with the table sname.tname."       ]
 [ "sql",       "tid",  "pattern sql.tid(X_0:int, X_1:str, X_2:str, X_3:int, 
X_4:int):bat[:oid] ",      "SQLtid;",      "Return the tables tid column." ]
-[ "sql",       "transaction",  "unsafe pattern sql.transaction():void ",       
"SQLtransaction2;",     "Start an autocommit transaction"       ]
-[ "sql",       "transaction",  "unsafe pattern sql.transaction():void ",       
"SQLtransaction2;",     "Start an autocommit transaction"       ]
 [ "sql",       "transaction_begin",    "unsafe pattern 
sql.transaction_begin(X_0:int, X_1:str):void ", "SQLtransaction_begin;",        
"A transaction statement (type can be commit,release,rollback or start)"        
]
 [ "sql",       "transaction_commit",   "unsafe pattern 
sql.transaction_commit(X_0:int, X_1:str):void ",        
"SQLtransaction_commit;",       "A transaction statement (type can be 
commit,release,rollback or start)"        ]
 [ "sql",       "transaction_release",  "unsafe pattern 
sql.transaction_release(X_0:int, X_1:str):void ",       
"SQLtransaction_release;",      "A transaction statement (type can be 
commit,release,rollback or start)"        ]
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -2389,17 +2389,16 @@ dump_database(Mapi mid, stream *toConsol
                "WHERE sch.id = seq.schema_id "
                "ORDER BY sch.name, seq.name";
        const char *sequences2 =
-               "SELECT s.name, "
-                    "seq.name, "
-                    "peak_next_value_for(s.name, seq.name), "
-                    "seq.\"minvalue\", "
-                    "seq.\"maxvalue\", "
-                    "seq.\"increment\", "
-                    "seq.\"cycle\" "
-               "FROM sys.sequences seq, "
-                    "sys.schemas s "
-               "WHERE s.id = seq.schema_id "
-               "ORDER BY s.name, seq.name";
+               "SELECT "
+                    "sch, "
+                    "seq, "
+                    "rs, "
+                    "rmi, "
+                    "rma, "
+                    "inc, "
+                    "cycle "
+               "FROM sys.describe_sequences "
+               "ORDER BY sch, seq";
        /* we must dump tables, views, functions/procedures and triggers in 
order of creation since they can refer to each other */
        const char *tables_views_functions_triggers =
                "with vft (sname, name, id, query, remark, type) AS ("
@@ -2874,6 +2873,8 @@ dump_database(Mapi mid, stream *toConsol
                        if (sname != NULL && strcmp(schema, sname) != 0)
                                continue;
 
+                       // sleep(7);
+
                        mnstr_printf(toConsole,
                                     "ALTER SEQUENCE ");
                        dquoted_print(toConsole, schema, ".");
@@ -2881,9 +2882,9 @@ dump_database(Mapi mid, stream *toConsol
                        mnstr_printf(toConsole, " RESTART WITH %s", restart);
                        if (strcmp(increment, "1") != 0)
                                mnstr_printf(toConsole, " INCREMENT BY %s", 
increment);
-                       if (strcmp(minvalue, "0") != 0)
+                       if (minvalue)
                                mnstr_printf(toConsole, " MINVALUE %s", 
minvalue);
-                       if (strcmp(maxvalue, "0") != 0)
+                       if (maxvalue)
                                mnstr_printf(toConsole, " MAXVALUE %s", 
maxvalue);
                        mnstr_printf(toConsole, " %sCYCLE;\n", strcmp(cycle, 
"true") == 0 ? "" : "NO ");
                        if (mnstr_errnr(toConsole)) {
diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -274,11 +274,13 @@ void freeModule(Module m)
        if ((s = findSymbolInModule(m, "epilogue")) != NULL) {
                InstrPtr pci = getInstrPtr(s->def,0);
                if (pci && pci->token == COMMANDsymbol && pci->argc == 1) {
-                       int ret = 0;
+                       int status = 0;
+                       str ret = MAL_SUCCEED;
 
                        assert(pci->fcn != NULL);
-                       (*pci->fcn)(&ret);
-                       (void)ret;
+                       ret = (*pci->fcn)(&status);
+                       freeException(ret);
+                       (void)status;
                }
        }
        freeSubScope(m);
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
@@ -117,7 +117,7 @@ rel_find_predicates(visitor *v, sql_rel 
 sql_rel *
 rel_predicates(backend *be, sql_rel *rel)
 {
-       if (be->mvc->session->level < tr_serializable)
+       if ((be->mvc->session->level & tr_snapshot) == tr_snapshot)
                return rel;
        visitor v = { .sql = be->mvc };
        rel = rel_visitor_topdown(&v, rel, &rel_find_predicates);
@@ -127,7 +127,7 @@ rel_predicates(backend *be, sql_rel *rel
 int
 add_column_predicate(backend *be, sql_column *c)
 {
-       if (be->mvc->session->level < tr_serializable || isNew(c) || 
!isGlobal(c->t) || isGlobalTemp(c->t))
+       if ((be->mvc->session->level & tr_snapshot) == tr_snapshot || isNew(c) 
|| !isGlobal(c->t) || isGlobalTemp(c->t))
                return LOG_OK;
        return sql_trans_add_predicate(be->mvc->session->tr, c, 0, NULL, NULL, 
false, false);
 }
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -226,43 +226,6 @@ SQLmvc(Client cntxt, MalBlkPtr mb, MalSt
        return MAL_SUCCEED;
 }
 
-str
-SQLcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *sql = NULL;
-       str msg;
-       (void) stk;
-       (void) pci;
-
-       if ((msg = getSQLContext(cntxt, mb, &sql, NULL)) != NULL)
-               return msg;
-       if ((msg = checkSQLContext(cntxt)) != NULL)
-               return msg;
-
-       if (sql->session->auto_commit != 0)
-               throw(SQL, "sql.trans", SQLSTATE(2DM30) "COMMIT not allowed in 
auto commit mode");
-       return mvc_commit(sql, 0, 0, false);
-}
-
-str
-SQLabort(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *sql = NULL;
-       str msg;
-       (void) stk;
-       (void) pci;
-
-       if ((msg = getSQLContext(cntxt, mb, &sql, NULL)) != NULL)
-               return msg;
-       if ((msg = checkSQLContext(cntxt)) != NULL)
-               return msg;
-
-       if (sql->session->tr->active) {
-               msg = mvc_rollback(sql, 0, NULL, false);
-       }
-       return msg;
-}
-
 static str
 SQLshutdown_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -5091,9 +5054,6 @@ static mel_func sql_init_funcs[] = {
  pattern("sql", "shutdown", SQLshutdown_wrap, true, "", args(1,2, 
arg("",str),arg("delay",int))),
  pattern("sql", "set_protocol", SQLset_protocol, true, "Configures the result 
set protocol", args(1,2, arg("",int), arg("protocol",int))),
  pattern("sql", "mvc", SQLmvc, false, "Get the multiversion catalog context. 
\nNeeded for correct statement dependencies\n(ie sql.update, should be after 
sql.bind in concurrent execution)", args(1,1, arg("",int))),
- pattern("sql", "transaction", SQLtransaction2, true, "Start an autocommit 
transaction", noargs),
- pattern("sql", "commit", SQLcommit, true, "Trigger the commit operation for a 
MAL block", noargs),
- pattern("sql", "abort", SQLabort, true, "Trigger the abort operation for a 
MAL block", noargs),
  pattern("sql", "eval", SQLstatement, true, "Compile and execute a single sql 
statement", args(1,2, arg("",void),arg("cmd",str))),
  pattern("sql", "eval", SQLstatement, true, "Compile and execute a single sql 
statement (and optionaly set the output to columnar format)", args(1,3, 
arg("",void),arg("cmd",str),arg("columnar",bit))),
  pattern("sql", "include", SQLinclude, true, "Compile and execute a sql 
statements on the file", args(1,2, arg("",void),arg("fname",str))),
@@ -6004,7 +5964,6 @@ static mel_func sql_init_funcs[] = {
  pattern("sql", "transaction_commit", SQLtransaction_commit, true, "A 
transaction statement (type can be commit,release,rollback or start)", 
args(1,3, arg("",void),arg("chain",int),arg("name",str))),
  pattern("sql", "transaction_rollback", SQLtransaction_rollback, true, "A 
transaction statement (type can be commit,release,rollback or start)", 
args(1,3, arg("",void),arg("chain",int),arg("name",str))),
  pattern("sql", "transaction_begin", SQLtransaction_begin, true, "A 
transaction statement (type can be commit,release,rollback or start)", 
args(1,3, arg("",void),arg("chain",int),arg("name",str))),
- pattern("sql", "transaction", SQLtransaction2, true, "Start an autocommit 
transaction", noargs),
 #ifdef HAVE_HGE
  /* sql_hge */
  command("calc", "dec_round", hge_dec_round_wrap, false, "round off the value 
v to nearests multiple of r", args(1,3, arg("",hge),arg("v",hge),arg("r",hge))),
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -58,9 +58,6 @@ extern BAT *mvc_bind(mvc *m, const char 
 extern BAT *mvc_bind_idxbat(mvc *m, const char *sname, const char *tname, 
const char *iname, int access);
 
 extern str SQLmvc(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-extern str SQLcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-extern str SQLabort(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-extern str SQLtransaction2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 
 extern str mvc_grow_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 extern str mvc_claim_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
diff --git a/sql/backends/monet5/sql_cast.c b/sql/backends/monet5/sql_cast.c
--- a/sql/backends/monet5/sql_cast.c
+++ b/sql/backends/monet5/sql_cast.c
@@ -200,7 +200,7 @@ SQLstr_cast(Client cntxt, MalBlkPtr mb, 
 #define SQLstr_cast_str(v, digits) \
        if (digits > 0 && UTF8_strlen(v) > digits) { \
                msg = createException(SQL, "batcalc.str_cast", SQLSTATE(22001) 
"value too long for type (var)char(%d)", digits); \
-               goto bailout; \
+               goto bailout1; \
        }
 
 /* str SQLbatstr_cast(int *res, int *eclass, int *d1, int *s1, int *has_tz, 
int *bid, int *digits); */
diff --git a/sql/backends/monet5/sql_scenario.c 
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -222,7 +222,7 @@ SQLepilogue(void *ret)
                if (!res)
                        res = msab_retreatScenario(s);
                if (res != NULL) {
-                       char *err = createException(MAL, "sql.start", "%s", 
res);
+                       char *err = createException(MAL, "sql.epilogue", "%s", 
res);
                        free(res);
                        return err;
                }
diff --git a/sql/backends/monet5/sql_transaction.c 
b/sql/backends/monet5/sql_transaction.c
--- a/sql/backends/monet5/sql_transaction.c
+++ b/sql/backends/monet5/sql_transaction.c
@@ -120,36 +120,3 @@ SQLtransaction_begin(Client cntxt, MalBl
        }
        return MAL_SUCCEED;
 }
-
-str
-SQLtransaction2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *sql = NULL;
-       str msg;
-
-       (void) stk;
-       (void) pci;
-
-       if ((msg = getSQLContext(cntxt, mb, &sql, NULL)) != NULL)
-               return msg;
-       if ((msg = checkSQLContext(cntxt)) != NULL)
-               return msg;
-       if (sql->session->auto_commit == 0)
-               throw(SQL, "sql.trans", SQLSTATE(25001) "START TRANSACTION: 
cannot start a transaction within a transaction");
-       if (sql->session->tr->active)
-               msg = mvc_rollback(sql, 0, NULL, false);
-       sql->session->auto_commit = 0;
-       sql->session->ac_on_commit = 1;
-       sql->session->level = 0;
-       if (msg)
-               return msg;
-       switch (mvc_trans(sql)) {
-               case -1:
-                       throw(SQL, "sql.trans", SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
-               case -3:
-                       throw(SQL, "sql.trans", SQLSTATE(42000) "The session's 
schema was not found, this transaction won't start");
-               default:
-                       break;
-       }
-       return MAL_SUCCEED;
-}
diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -2774,7 +2774,27 @@ sql_update_jul2021(Client c, mvc *sql, c
                                        "        s.name as sch,\n"
                                        "        seq.name as seq,\n"
                                        "        seq.\"start\" s,\n"
-                                       "        
sys.peak_next_value_for(s.name, seq.name) AS rs,\n"
+                                       "        sys.get_value_for(s.name, 
seq.name) AS rs,\n"
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to