Changeset: fbbcf80e848b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fbbcf80e848b
Modified Files:
        sql/backends/monet5/Tests/All
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_scenario.c
Branch: default
Log Message:

don't allow interal sql statements too create temporary sql clients.


diffs (69 lines):

diff --git a/sql/backends/monet5/Tests/All b/sql/backends/monet5/Tests/All
--- a/sql/backends/monet5/Tests/All
+++ b/sql/backends/monet5/Tests/All
@@ -1,6 +1,6 @@
 optimizers
 
-simpleSQL
+#simpleSQL
 limithack
 shutdown
 
diff --git a/sql/backends/monet5/sql_execute.c 
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -139,7 +139,7 @@ str
 SQLstatementIntern(Client c, const char *expr, const char *nme, bit execute, 
bit output, res_table **result)
 {
        allocator_state ta_state = ma_open(MT_thread_getallocator());
-       int status = 0, err = 0, oldvtop, oldstop = 1, inited = 0, ac, 
sizeframes, topframes;
+       int status = 0, err = 0, oldvtop, oldstop = 1, ac, sizeframes, 
topframes;
        unsigned int label;
        mvc *o = NULL, *m = NULL;
        sql_frame **frames;
@@ -153,11 +153,8 @@ SQLstatementIntern(Client c, const char 
        Symbol backup = NULL;
        size_t len = strlen(expr);
 
-       if (!sql) {
-               inited = 1;
-               msg = SQLinitClient(c, NULL, NULL, NULL);
-               sql = (backend *) c->sqlcontext;
-       }
+       if (!sql)
+               throw(SQL, "sql.statement", SQLSTATE(HY002) "No sql context 
available");
        if (msg){
                ma_close(&ta_state);
                throw(SQL, "sql.statement", SQLSTATE(HY002) "Catalogue not 
available");
@@ -167,9 +164,6 @@ SQLstatementIntern(Client c, const char 
        ac = m->session->auto_commit;
        o = MNEW(mvc);
        if (!o) {
-               if (inited) {
-                       msg = SQLresetClient(c);
-               }
                ma_close(&ta_state);
                throw(SQL, "sql.statement", SQLSTATE(HY013) MAL_MALLOC_FAIL);
        }
@@ -390,9 +384,6 @@ endofcompile:
        m->frames = frames;
        m->session->status = status;
        m->session->auto_commit = ac;
-       if (inited) {
-               (void) SQLresetClient(c);
-       }
        ma_close(&ta_state);
        return msg;
 }
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
@@ -1052,6 +1052,8 @@ SQLstatement(Client cntxt, MalBlkPtr mb,
        if (pci->argc == 3 && *getArgReference_bit(stk, pci, 2))
                cntxt->protocol = PROTOCOL_COLUMNAR;
 
+       if (!cntxt->sqlcontext)
+               throw(SQL, "SQLstatement", SQLSTATE(42000) "No sql context 
available");
        str msg = SQLstatementIntern(cntxt, expr, "SQLstatement", TRUE, TRUE, 
NULL);
 
        cntxt->protocol = backup;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to