Changeset: 805335c934d4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/805335c934d4
Added Files:
        sql/test/BugTracker-2021/Tests/remote-table-large.Bug-7178.SQL.py
Modified Files:
        sql/backends/monet5/sql_gencode.c
        sql/test/BugTracker-2021/Tests/All
Branch: Jul2021
Log Message:

Added test and fix for bug #7178 Clean buffer reallocation code at MAL remote 
plans generation and added defensive lines


diffs (298 lines):

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
@@ -326,7 +326,8 @@ static int
        const char *local_tbl = prp->value;
        node *n;
        int i, q, v, res = 0, added_to_cache = 0,  *lret, *rret;
-       char *lname;
+       size_t len = 1024, nr;
+       char *lname, *buf;
        sql_rel *r = rel;
 
        if (local_tbl == NULL) {
@@ -386,9 +387,7 @@ static int
 
        /* ops */
        if (call && call->type == st_list) {
-               node *n;
-
-               for (n = call->op4.lval->h; n; n = n->next) {
+               for (node *n = call->op4.lval->h; n; n = n->next) {
                        stmt *op = n->data;
                        sql_subtype *t = tail_type(op);
                        int type = t->type->localtype;
@@ -413,15 +412,17 @@ static int
        }
 
        /* declare return variables */
-       for (i = 0, n = r->exps->h; n; n = n->next, i++) {
-               sql_exp *e = n->data;
-               int type = exp_subtype(e)->type->localtype;
+       if (!list_empty(r->exps)) {
+               for (i = 0, n = r->exps->h; n; n = n->next, i++) {
+                       sql_exp *e = n->data;
+                       int type = exp_subtype(e)->type->localtype;
 
-               type = newBatType(type);
-               p = newFcnCall(curBlk, batRef, newRef);
-               p = pushType(curBlk, p, getBatType(type));
-               setArgType(curBlk, p, 0, type);
-               lret[i] = getArg(p, 0);
+                       type = newBatType(type);
+                       p = newFcnCall(curBlk, batRef, newRef);
+                       p = pushType(curBlk, p, getBatType(type));
+                       setArgType(curBlk, p, 0, type);
+                       lret[i] = getArg(p, 0);
+               }
        }
 
        /* q := remote.connect("schema.table", "msql"); */
@@ -451,99 +452,96 @@ static int
        o = pushStr(curBlk, o, lname);
        p = pushArgument(curBlk, p, getArg(o,0));
 
-       {
-       int len = 1024, nr = 0;
-       char *s, *buf = GDKmalloc(len);
-       if (!buf) {
+       if (!(buf = rel2str(m, rel))) {
                GDKfree(lname);
                sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                return -1;
        }
-       s = rel2str(m, rel);
-       if (!s) {
-               GDKfree(lname);
-               GDKfree(buf);
-               sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-               return -1;
-       }
        o = newFcnCall(curBlk, remoteRef, putRef);
        o = pushArgument(curBlk, o, q);
-       o = pushStr(curBlk, o, s);      /* relational plan */
+       o = pushStr(curBlk, o, buf);    /* relational plan */
        p = pushArgument(curBlk, p, getArg(o,0));
-       free(s);
-
-       s = "";
-       if (call && call->type == st_list) { /* Send existing variables in the 
plan */
-               node *n;
-
-               buf[0] = 0;
-               for (n = call->op4.lval->h; n; n = n->next) {
-                       stmt *op = n->data;
-                       sql_subtype *t = tail_type(op);
-                       const char *nme = 
(op->op3)?op->op3->op4.aval->data.val.sval:op->cname;
+       free(buf);
 
-                       if ((nr + 100) > len) {
-                               char *tmp = GDKrealloc(buf, len*=2);
-                               if (tmp == NULL) {
-                                       GDKfree(buf);
-                                       buf = NULL;
-                                       break;
-                               }
-                               buf = tmp;
-                       }
-
-                       nr += snprintf(buf+nr, len-nr, "%s %s(%u,%u)%c", nme, 
t->type->base.name, t->digits, t->scale, n->next?',':' ');
-               }
-               s = buf;
-       }
-       if (buf) {
-               o = newFcnCall(curBlk, remoteRef, putRef);
-               o = pushArgument(curBlk, o, q);
-               o = pushStr(curBlk, o, s);      /* signature */
-               p = pushArgument(curBlk, p, getArg(o,0));
-       } else {
+       if (!(buf = GDKmalloc(len))) {
                GDKfree(lname);
                sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
                return -1;
        }
 
        buf[0] = 0;
-       nr = 0;
-       for (n = r->exps->h; n; n = n->next) { /* Send SQL types of the 
projection's expressions */
-               sql_exp *e = n->data;
-               sql_subtype *t = exp_subtype(e);
-               str next = sql_subtype_string(m->ta, t);
+       if (call && call->type == st_list) { /* Send existing variables in the 
plan */
+               char dbuf[32], sbuf[32];
+
+               nr = 0;
+               for (node *n = call->op4.lval->h; n; n = n->next) {
+                       stmt *op = n->data;
+                       sql_subtype *t = tail_type(op);
+                       const char *nme = 
(op->op3)?op->op3->op4.aval->data.val.sval:op->cname;
 
-               if (!next) {
-                       GDKfree(buf);
-                       buf = NULL;
-                       break;
-               }
-               if ((nr + 100) > len) {
-                       char *tmp = GDKrealloc(buf, len*=2);
-                       if (tmp == NULL) {
-                               GDKfree(buf);
-                               buf = NULL;
-                               break;
+                       sprintf(dbuf, "%u", t->digits);
+                       sprintf(sbuf, "%u", t->scale);
+                       size_t nlen = strlen(nme) + strlen(t->type->base.name) 
+ strlen(dbuf) + strlen(sbuf) + 6;
+
+                       if ((nr + nlen) > len) {
+                               len = (len + nlen) * 2;
+                               char *tmp = GDKrealloc(buf, len);
+                               if (tmp == NULL) {
+                                       GDKfree(lname);
+                                       GDKfree(buf);
+                                       sql_error(m, 001, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
+                                       return -1;
+                               }
+                               buf = tmp;
                        }
-                       buf = tmp;
+
+                       nr += snprintf(buf+nr, len-nr, "%s %s(%s,%s)%c", nme, 
t->type->base.name, dbuf, sbuf, n->next?',':' ');
                }
-
-               nr += snprintf(buf+nr, len-nr, "%s%s", next, n->next?"%":"");
        }
-       sa_reset(m->ta);
-       if (buf) {
-               o = newFcnCall(curBlk, remoteRef, putRef);
-               o = pushArgument(curBlk, o, q);
-               o = pushStr(curBlk, o, s);      /* SQL types as a single string 
*/
-               p = pushArgument(curBlk, p, getArg(o,0));
-               GDKfree(buf);
-       } else {
-               GDKfree(lname);
-               sql_error(m, 001, SQLSTATE(HY013) MAL_MALLOC_FAIL);
-               return -1;
+       o = newFcnCall(curBlk, remoteRef, putRef);
+       o = pushArgument(curBlk, o, q);
+       o = pushStr(curBlk, o, buf);    /* signature */
+       p = pushArgument(curBlk, p, getArg(o,0));
+
+       buf[0] = 0;
+       if (!list_empty(r->exps)) {
+               nr = 0;
+               for (n = r->exps->h; n; n = n->next) { /* Send SQL types of the 
projection's expressions */
+                       sql_exp *e = n->data;
+                       sql_subtype *t = exp_subtype(e);
+                       str next = sql_subtype_string(m->ta, t);
+
+                       if (!next) {
+                               GDKfree(lname);
+                               GDKfree(buf);
+                               sa_reset(m->ta);
+                               sql_error(m, 001, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
+                               return -1;
+                       }
+
+                       size_t nlen = strlen(next) + 2;
+                       if ((nr + nlen) > len) {
+                               len = (len + nlen) * 2;
+                               char *tmp = GDKrealloc(buf, len);
+                               if (tmp == NULL) {
+                                       GDKfree(lname);
+                                       GDKfree(buf);
+                                       sa_reset(m->ta);
+                                       sql_error(m, 001, SQLSTATE(HY013) 
MAL_MALLOC_FAIL);
+                                       return -1;
+                               }
+                               buf = tmp;
+                       }
+
+                       nr += snprintf(buf+nr, len-nr, "%s%s", next, 
n->next?"%":"");
+               }
+               sa_reset(m->ta);
        }
-       }
+       o = newFcnCall(curBlk, remoteRef, putRef);
+       o = pushArgument(curBlk, o, q);
+       o = pushStr(curBlk, o, buf);    /* SQL types as a single string */
+       GDKfree(buf);
+       p = pushArgument(curBlk, p, getArg(o,0));
        pushInstruction(curBlk, p);
 
        char *mal_session_uuid, *err = NULL;
@@ -620,14 +618,16 @@ static int
        p = pushStr(curBlk, p, lname);
        getArg(p, 0) = -1;
 
-       for (i = 0, n = r->exps->h; n; n = n->next, i++) {
-               /* x1 := remote.put(q, :type) */
-               o = newFcnCall(curBlk, remoteRef, putRef);
-               o = pushArgument(curBlk, o, q);
-               o = pushArgument(curBlk, o, lret[i]);
-               v = getArg(o, 0);
-               p = pushReturn(curBlk, p, v);
-               rret[i] = v;
+       if (!list_empty(r->exps)) {
+               for (i = 0, n = r->exps->h; n; n = n->next, i++) {
+                       /* x1 := remote.put(q, :type) */
+                       o = newFcnCall(curBlk, remoteRef, putRef);
+                       o = pushArgument(curBlk, o, q);
+                       o = pushArgument(curBlk, o, lret[i]);
+                       v = getArg(o, 0);
+                       p = pushReturn(curBlk, p, v);
+                       rret[i] = v;
+               }
        }
 
        /* send arguments to remote */
diff --git a/sql/test/BugTracker-2021/Tests/All 
b/sql/test/BugTracker-2021/Tests/All
--- a/sql/test/BugTracker-2021/Tests/All
+++ b/sql/test/BugTracker-2021/Tests/All
@@ -28,3 +28,4 @@ remote-join-idxs.Bug-7165
 shutdown-force.Bug-7167
 merge-table-join.Bug-7172
 truncate-restart.Bug-7173
+remote-table-large.Bug-7178
diff --git a/sql/test/BugTracker-2021/Tests/remote-table-large.Bug-7178.SQL.py 
b/sql/test/BugTracker-2021/Tests/remote-table-large.Bug-7178.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2021/Tests/remote-table-large.Bug-7178.SQL.py
@@ -0,0 +1,39 @@
+import os
+
+from MonetDBtesting.sqltest import SQLTestCase
+
+port = os.environ['MAPIPORT']
+db = os.environ['TSTDB']
+
+with SQLTestCase() as cli:
+    cli.connect(username="monetdb", password="monetdb")
+    cli.execute("""
+    START TRANSACTION;
+    create table myx(col0 int,col1 int,col2 int,col3 int,col4 int,col5 
int,col6 int,col7 int,col8 int,col9 int,col10 int,col11 int,col12 int,col13 
int,col14 int,col15 int,col16 int,col17 int,col18 int,col19 int,col20 int,col21 
int,col22 int,col23 int,col24 int,col25 int,col26 int,col27 int,col28 int,col29 
int,col30 int,col31 int,col32 int,col33 int,col34 int,col35 int,col36 int,col37 
int,col38 int,col39 int,col40 int,col41 int,col42 int,col43 int,col44 int,col45 
int,col46 int,col47 int,col48 int,col49 int,col50 int,col51 int,col52 int,col53 
int,col54 int,col55 int,col56 int,col57 int,col58 int,col59 int,col60 int,col61 
int,col62 int,col63 int,col64 int,col65 int,col66 int,col67 int,col68 int,col69 
int,col70 int,col71 int,col72 int,col73 int,col74 int,col75 int,col76 int,col77 
int,col78 int,col79 int,col80 int,col81 int,col82 int,col83 int,col84 int,col85 
int,col86 int,col87 int,col88 int,col89 int,col90 int,col91 int,col92 int,col93 
int,col94 int,col95 int,col96 int,col97 int,col98 
 int,col99 int,col100 int,col101 int,col102 int,col103 int,col104 int,col105 
int,col106 int,col107 int,col108 int,col109 int,col110 int,col111 int,col112 
int,col113 int,col114 int,col115 int,col116 int,col117 int,col118 int,col119 
int,col120 int,col121 int,col122 int,col123 int,col124 int,col125 int,col126 
int,col127 int,col128 int,col129 int,col130 int,col131 int,col132 int,col133 
int,col134 int,col135 int,col136 int,col137 int,col138 int,col139 int,col140 
int,col141 int,col142 int,col143 int,col144 int,col145 int,col146 int,col147 
int,col148 int,col149 int,col150 int,col151 int,col152 int,col153 int,col154 
int,col155 int,col156 int,col157 int,col158 int,col159 int,col160 int,col161 
int,col162 int,col163 int,col164 int,col165 int,col166 int,col167 int,col168 
int,col169 int,col170 int,col171 int,col172 int,col173 int,col174 int,col175 
int,col176 int,col177 int,col178 int,col179 int,col180 int,col181 int,col182 
int,col183 int,col184 int,col185 int,col186 int,col187 int,col188 int,col1
 89 int,col190 int,col191 int,col192 int,col193 int,col194 int,col195 
int,col196 int,col197 int,col198 int,col199 int,col200 int,col201 int,col202 
int,col203 int,col204 int,col205 int,col206 int,col207 int,col208 int,col209 
int,col210 int,col211 int,col212 int,col213 int,col214 int,col215 int,col216 
int,col217 int,col218 int,col219 int,col220 int,col221 int,col222 int,col223 
int,col224 int,col225 int,col226 int,col227 int,col228 int,col229 int,col230 
int,col231 int,col232 int,col233 int,col234 int,col235 int,col236 int,col237 
int,col238 int,col239 int,col240 int,col241 int,col242 int,col243 int,col244 
int,col245 int,col246 int,col247 int,col248 int,col249 int,col250 int,col251 
int,col252 int,col253 int,col254 int,col255 int,col256 int,col257 int,col258 
int,col259 int,col260 int,col261 int,col262 int,col263 int,col264 int,col265 
int,col266 int,col267 int,col268 int,col269 int,col270 int,col271 int,col272 
int,col273 int,col274 int,col275 int,col276 int,col277 int,col278 int,col279 
int,
 col280 int,col281 int,col282 int,col283 int,col284 int,col285 int,col286 
int,col287 int,col288 int,col289 int,col290 int,col291 int,col292 int,col293 
int,col294 int,col295 int,col296 int,col297 int,col298 int,col299 int,col300 
int,col301 int,col302 int,col303 int,col304 int,col305 int,col306 int,col307 
int,col308 int,col309 int,col310 int,col311 int,col312 int,col313 int,col314 
int,col315 int,col316 int,col317 int,col318 int,col319 int,col320 int,col321 
int,col322 int,col323 int,col324 int,col325 int,col326 int,col327 int,col328 
int,col329 int,col330 int,col331 int,col332 int,col333 int,col334 int,col335 
int,col336 int,col337 int,col338 int,col339 int,col340 int,col341 int,col342 
int,col343 int,col344 int,col345 int,col346 int,col347 int,col348 int,col349 
int,col350 int,col351 int,col352 int,col353 int,col354 int,col355 int,col356 
int,col357 int,col358 int,col359 int,col360 int,col361 int,col362 int,col363 
int,col364 int,col365 int,col366 int,col367 int,col368 int,col369 int,col370 
 int,col371 int,col372 int,col373 int,col374 int,col375 int,col376 int,col377 
int,col378 int,col379 int,col380 int,col381 int,col382 int,col383 int,col384 
int,col385 int,col386 int,col387 int,col388 int,col389 int,col390 int,col391 
int,col392 int,col393 int,col394 int,col395 int,col396 int,col397 int,col398 
int,col399 int,col400 int,col401 int,col402 int,col403 int,col404 int,col405 
int,col406 int,col407 int,col408 int,col409 int,col410 int,col411 int,col412 
int,col413 int,col414 int,col415 int,col416 int,col417 int,col418 int,col419 
int,col420 int,col421 int,col422 int,col423 int,col424 int,col425 int,col426 
int,col427 int,col428 int,col429 int,col430 int,col431 int,col432 int,col433 
int,col434 int,col435 int,col436 int,col437 int,col438 int,col439 int,col440 
int,col441 int,col442 int,col443 int,col444 int,col445 int,col446 int,col447 
int,col448 int,col449 int,col450 int,col451 int,col452 int,col453 int,col454 
int,col455 int,col456 int,col457 int,col458 int,col459 int,col460 int,col
 461 int,col462 int,col463 int,col464 int,col465 int,col466 int,col467 
int,col468 int,col469 int,col470 int,col471 int,col472 int,col473 int,col474 
int,col475 int,col476 int,col477 int,col478 int,col479 int,col480 int,col481 
int,col482 int,col483 int,col484 int,col485 int,col486 int,col487 int,col488 
int,col489 int,col490 int,col491 int,col492 int,col493 int,col494 int,col495 
int,col496 int,col497 int,col498 int,col499 int,col500 int);
+    insert into myx;
+    insert into myx;
+    insert into myx;
+    COMMIT;
+
+    START TRANSACTION;
+    create remote table rmyx(col0 int,col1 int,col2 int,col3 int,col4 int,col5 
int,col6 int,col7 int,col8 int,col9 int,col10 int,col11 int,col12 int,col13 
int,col14 int,col15 int,col16 int,col17 int,col18 int,col19 int,col20 int,col21 
int,col22 int,col23 int,col24 int,col25 int,col26 int,col27 int,col28 int,col29 
int,col30 int,col31 int,col32 int,col33 int,col34 int,col35 int,col36 int,col37 
int,col38 int,col39 int,col40 int,col41 int,col42 int,col43 int,col44 int,col45 
int,col46 int,col47 int,col48 int,col49 int,col50 int,col51 int,col52 int,col53 
int,col54 int,col55 int,col56 int,col57 int,col58 int,col59 int,col60 int,col61 
int,col62 int,col63 int,col64 int,col65 int,col66 int,col67 int,col68 int,col69 
int,col70 int,col71 int,col72 int,col73 int,col74 int,col75 int,col76 int,col77 
int,col78 int,col79 int,col80 int,col81 int,col82 int,col83 int,col84 int,col85 
int,col86 int,col87 int,col88 int,col89 int,col90 int,col91 int,col92 int,col93 
int,col94 int,col95 int,col96 int,col97 in
 t,col98 int,col99 int,col100 int,col101 int,col102 int,col103 int,col104 
int,col105 int,col106 int,col107 int,col108 int,col109 int,col110 int,col111 
int,col112 int,col113 int,col114 int,col115 int,col116 int,col117 int,col118 
int,col119 int,col120 int,col121 int,col122 int,col123 int,col124 int,col125 
int,col126 int,col127 int,col128 int,col129 int,col130 int,col131 int,col132 
int,col133 int,col134 int,col135 int,col136 int,col137 int,col138 int,col139 
int,col140 int,col141 int,col142 int,col143 int,col144 int,col145 int,col146 
int,col147 int,col148 int,col149 int,col150 int,col151 int,col152 int,col153 
int,col154 int,col155 int,col156 int,col157 int,col158 int,col159 int,col160 
int,col161 int,col162 int,col163 int,col164 int,col165 int,col166 int,col167 
int,col168 int,col169 int,col170 int,col171 int,col172 int,col173 int,col174 
int,col175 int,col176 int,col177 int,col178 int,col179 int,col180 int,col181 
int,col182 int,col183 int,col184 int,col185 int,col186 int,col187 int,col188 
 int,col189 int,col190 int,col191 int,col192 int,col193 int,col194 int,col195 
int,col196 int,col197 int,col198 int,col199 int,col200 int,col201 int,col202 
int,col203 int,col204 int,col205 int,col206 int,col207 int,col208 int,col209 
int,col210 int,col211 int,col212 int,col213 int,col214 int,col215 int,col216 
int,col217 int,col218 int,col219 int,col220 int,col221 int,col222 int,col223 
int,col224 int,col225 int,col226 int,col227 int,col228 int,col229 int,col230 
int,col231 int,col232 int,col233 int,col234 int,col235 int,col236 int,col237 
int,col238 int,col239 int,col240 int,col241 int,col242 int,col243 int,col244 
int,col245 int,col246 int,col247 int,col248 int,col249 int,col250 int,col251 
int,col252 int,col253 int,col254 int,col255 int,col256 int,col257 int,col258 
int,col259 int,col260 int,col261 int,col262 int,col263 int,col264 int,col265 
int,col266 int,col267 int,col268 int,col269 int,col270 int,col271 int,col272 
int,col273 int,col274 int,col275 int,col276 int,col277 int,col278 int,col
 279 int,col280 int,col281 int,col282 int,col283 int,col284 int,col285 
int,col286 int,col287 int,col288 int,col289 int,col290 int,col291 int,col292 
int,col293 int,col294 int,col295 int,col296 int,col297 int,col298 int,col299 
int,col300 int,col301 int,col302 int,col303 int,col304 int,col305 int,col306 
int,col307 int,col308 int,col309 int,col310 int,col311 int,col312 int,col313 
int,col314 int,col315 int,col316 int,col317 int,col318 int,col319 int,col320 
int,col321 int,col322 int,col323 int,col324 int,col325 int,col326 int,col327 
int,col328 int,col329 int,col330 int,col331 int,col332 int,col333 int,col334 
int,col335 int,col336 int,col337 int,col338 int,col339 int,col340 int,col341 
int,col342 int,col343 int,col344 int,col345 int,col346 int,col347 int,col348 
int,col349 int,col350 int,col351 int,col352 int,col353 int,col354 int,col355 
int,col356 int,col357 int,col358 int,col359 int,col360 int,col361 int,col362 
int,col363 int,col364 int,col365 int,col366 int,col367 int,col368 int,col369 int
 ,col370 int,col371 int,col372 int,col373 int,col374 int,col375 int,col376 
int,col377 int,col378 int,col379 int,col380 int,col381 int,col382 int,col383 
int,col384 int,col385 int,col386 int,col387 int,col388 int,col389 int,col390 
int,col391 int,col392 int,col393 int,col394 int,col395 int,col396 int,col397 
int,col398 int,col399 int,col400 int,col401 int,col402 int,col403 int,col404 
int,col405 int,col406 int,col407 int,col408 int,col409 int,col410 int,col411 
int,col412 int,col413 int,col414 int,col415 int,col416 int,col417 int,col418 
int,col419 int,col420 int,col421 int,col422 int,col423 int,col424 int,col425 
int,col426 int,col427 int,col428 int,col429 int,col430 int,col431 int,col432 
int,col433 int,col434 int,col435 int,col436 int,col437 int,col438 int,col439 
int,col440 int,col441 int,col442 int,col443 int,col444 int,col445 int,col446 
int,col447 int,col448 int,col449 int,col450 int,col451 int,col452 int,col453 
int,col454 int,col455 int,col456 int,col457 int,col458 int,col459 int,col460
  int,col461 int,col462 int,col463 int,col464 int,col465 int,col466 int,col467 
int,col468 int,col469 int,col470 int,col471 int,col472 int,col473 int,col474 
int,col475 int,col476 int,col477 int,col478 int,col479 int,col480 int,col481 
int,col482 int,col483 int,col484 int,col485 int,col486 int,col487 int,col488 
int,col489 int,col490 int,col491 int,col492 int,col493 int,col494 int,col495 
int,col496 int,col497 int,col498 int,col499 int,col500 int)
+    ON 'mapi:monetdb://localhost:%s/%s/sys/myx';
+    COMMIT;""" % (port, db)).assertSucceeded()
+
+    cli.execute('SELECT * from rmyx;') \
+        .assertSucceeded().assertDataResultMatch([
+        
(None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,Non
 
e,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,
 
None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None),
+        
(None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,Non
 
e,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,
 
None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None),
+        
(None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,Non
 
e,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,
 
None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None)
+        ])
+    cli.execute('SELECT * from rmyx limit 2;') \
+        .assertSucceeded().assertDataResultMatch([
+        
(None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,Non
 
e,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,
 
None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None),
+        
(None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,Non
 
e,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,
 
None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None)
+        ])
+
+    cli.execute("""
+    START TRANSACTION;
+    DROP TABLE rmyx;
+    DROP TABLE myx;
+    COMMIT;""").assertSucceeded()
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to