Changeset: e9adf6d6f451 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e9adf6d6f451
Modified Files:
        geom/monetdb5/geom_upgrade.c
        sql/backends/monet5/sql_upgrades.c
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Jun2016
Log Message:

Fix sys.args and sys.functions tables for internal functions when doing a 
database upgrade.


diffs (truncated from 63784 to 300 lines):

diff --git a/geom/monetdb5/geom_upgrade.c b/geom/monetdb5/geom_upgrade.c
--- a/geom/monetdb5/geom_upgrade.c
+++ b/geom/monetdb5/geom_upgrade.c
@@ -100,32 +100,14 @@ geom_catalog_upgrade(void *lg, int olddb
        const char *s = "sys";
        char n[64];
        BUN p,q;
-       const struct {
-               char *name;
-               int type;
-       } nf[] = {
-               {"functions_id", TYPE_int},
-               {"functions_name", TYPE_str},
-               {"functions_func", TYPE_str},
-               {"functions_mod", TYPE_str},
-               {"functions_language", TYPE_int},
-               {"functions_type", TYPE_int},
-               {"functions_side_effect", TYPE_bit},
-               {"functions_varres", TYPE_bit},
-               {"functions_vararg", TYPE_bit},
-               {"functions_schema_id", TYPE_int}
-       };
-       BAT *ff[10], *ffn[10];
-       BATiter ffi[10];
-       int val, maxid, i;
        size_t ii;
-       bit bval;
        ulist *ul;
-       if ((ul = list_init(32)) == NULL)
-               return 0;
 
        if (olddb) {
                /* Update the catalog to use the new geometry types */
+               if ((ul = list_init(32)) == NULL)
+                       return 0;
+
                ct = BATdescriptor((bat) logger_find_bat(lg, N(n, NULL, s, 
"_columns_type")));
                cti = bat_iterator(ct);
                cd = BATdescriptor((bat) logger_find_bat(lg, N(n, NULL, s, 
"_columns_type_digits")));
@@ -216,83 +198,18 @@ geom_catalog_upgrade(void *lg, int olddb
                    !list_add(&ul, cs, cns, N(n, NULL, s, 
"_columns_type_scale")))
                        return 0;
 
+               for (ii = 0; ii < ul->count; ii++) {
+                       BATsetaccess(ul->elements[ii].nb, BAT_READ);
+                       logger_add_bat(lg, ul->elements[ii].nb, 
ul->elements[ii].n);
+                       if (ul->elements[ii].ob)
+                               BBPunfix(ul->elements[ii].ob->batCacheid);
+               }
+               list_delete(ul);
        }
 
        /* Note that the new GEOM types are added to sys.types in
         * sql_update_geom() in sql_upgrades.c */
 
-       /* Add the new functions */
-       for (i = 0; i < 10; i++) {
-               if (!(ff[i] = BATdescriptor((bat) logger_find_bat(lg, N(n, 
NULL, s, nf[i].name)))))
-                       return 0;
-               ffi[i] = bat_iterator(ff[i]);
-               if (!(ffn[i] = BATnew(TYPE_void, nf[i].type, BATcount(ff[i]), 
PERSISTENT)))
-                       return 0;
-               BATseqbase(ffn[i], ff[i]->hseqbase);
-       }
-       maxid = 0;
-       for(p=BUNfirst(ff[0]), q=BUNlast(ff[0]); p<q; p++) {
-               for (i = 0; i < 10; i++)
-                       BUNappend(ffn[i], BUNtail(ffi[i], p), TRUE);
-               maxid = maxid < *(int*)BUNtail(ffi[0], p) ? 
*(int*)BUNtail(ffi[0], p) : maxid;
-       }
-
-#define GEOM_UPGRADE_STORE_FUNC(ba, id, name, mod, sqlname)    \
-do {                                                   \
-       val = id;                                       \
-       BUNappend(ba[0], &val, TRUE);                   \
-       BUNappend(ba[1], name, TRUE);                   \
-       BUNappend(ba[2], sqlname, TRUE);                \
-       BUNappend(ba[3], mod, TRUE);                    \
-       val = 0; BUNappend(ba[4], &val, TRUE);          \
-       val = 1; BUNappend(ba[5], &val, TRUE);          \
-       bval = false; BUNappend(ba[6], &bval, TRUE);    \
-       bval = false; BUNappend(ba[7], &bval, TRUE);    \
-       bval = false; BUNappend(ba[8], &bval, TRUE);    \
-       val = 0; BUNappend(ba[9], &val, TRUE);          \
-} while (0)
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap", "geom", 
"mbrOverlaps");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap", "geom", 
"mbrOverlaps");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_above", "geom", "mbrAbove");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_above", "geom", "mbrAbove");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_below", "geom", "mbrBelow");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_below", "geom", "mbrBelow");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_right", "geom", "mbrRight");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_right", "geom", "mbrRight");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_left", "geom", "mbrLeft");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_left", "geom", "mbrLeft");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_above", "geom", 
"mbrOverlapOrAbove");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_above", "geom", 
"mbrOverlapOrAbove");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_below", "geom", 
"mbrOverlapOrBelow");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_below", "geom", 
"mbrOverlapOrBelow");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_right", "geom", 
"mbrOverlapOrRight");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_right", "geom", 
"mbrOverlapOrRight");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_left", "geom", 
"mbrOverlapOrLeft");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_overlap_or_left", "geom", 
"mbrOverlapOrLeft");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_contains", "geom", 
"mbrContains");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_contains", "geom", 
"mbrContains");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_contained", "geom", 
"mbrContained");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_contained", "geom", 
"mbrContained");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_equal", "geom", "mbrEqual");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_equal", "geom", "mbrEqual");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_distance", "geom", 
"mbrDistance");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "mbr_distance", "geom", 
"mbrDistance");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "left_shift", "geom", "mbrLeft");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "left_shift", "geom", "mbrLeft");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "right_shift", "geom", 
"mbrRight");
-       GEOM_UPGRADE_STORE_FUNC(ffn, ++maxid, "right_shift", "geom", 
"mbrRight");
-#undef GEOM_UPGRADE_STORE_FUNC
-       for (i = 0; i < 10; i++) 
-               if (!list_add(&ul, ff[i], ffn[i], N(n, NULL, s, nf[i].name)))
-                       return 0;
-       
-       for (ii = 0; ii < ul->count; ii++) {
-               BATsetaccess(ul->elements[ii].nb, BAT_READ);
-               logger_add_bat(lg, ul->elements[ii].nb, ul->elements[ii].n);
-               if (ul->elements[ii].ob) 
BBPunfix(ul->elements[ii].ob->batCacheid);
-       }
-       list_delete(ul);
-
        return 1;
 }
 
@@ -4450,6 +4367,8 @@ geom_sql_upgrade(int olddb)
        pos += snprintf(buf + pos, bufsize - pos, "\n\n");
 
        pos += snprintf(buf + pos, bufsize - pos,
+                       "delete from sys.systemfunctions where function_id not 
in (select id from sys.functions);\n");
+       pos += snprintf(buf + pos, bufsize - pos,
                        "insert into sys.systemfunctions (select id from 
sys.functions where name in ("
                        "'contains', 'geometrytype', 'getproj4', 'get_type', "
                        "'has_m', 'has_z', 'internaltransform', 'left_shift', "
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
@@ -1156,7 +1156,7 @@ create function sys.\"epoch\"(ts TIMESTA
 static str
 sql_update_jun2016(Client c, mvc *sql)
 {
-       size_t bufsize = 25000, pos = 0;
+       size_t bufsize = 1000000, pos = 0;
        char *buf = GDKmalloc(bufsize), *err = NULL;
        ValRecord *schvar = stack_get_var(sql, "current_schema");
        char *schema = NULL;
@@ -1172,10 +1172,54 @@ sql_update_jun2016(Client c, mvc *sql)
        for (n = types->h; n; n = n->next) {
                sql_type *t = n->data;
 
-               if (t->base.id < 2000) {
-                       pos += snprintf(buf + pos, bufsize - pos, "insert into 
sys.types values (%d, '%s', '%s', %d, %d, %d, %d, %d);\n", t->base.id, 
t->base.name, t->sqlname, t->digits, t->scale, t->radix, t->eclass, t->s ? 
t->s->base.id : s->base.id);
+               if (t->base.id >= 2000)
+                       continue;
+
+               pos += snprintf(buf + pos, bufsize - pos, "insert into 
sys.types values (%d, '%s', '%s', %d, %d, %d, %d, %d);\n", t->base.id, 
t->base.name, t->sqlname, t->digits, t->scale, t->radix, t->eclass, t->s ? 
t->s->base.id : s->base.id);
+       }
+       pos += snprintf(buf + pos, bufsize - pos, "delete from sys.functions 
where id < 2000;\n");
+       pos += snprintf(buf + pos, bufsize - pos, "delete from sys.args where 
func_id not in (select id from sys.functions);\n");
+       for (n = funcs->h; n; n = n->next) {
+               sql_func *f = n->data;
+               int number = 0;
+               sql_arg *a;
+               node *m;
+
+               if (f->base.id >= 2000)
+                       continue;
+
+               pos += snprintf(buf + pos, bufsize - pos, "insert into 
sys.functions values (%d, '%s', '%s', '%s', %d, %d, %s, %s, %s, %d);\n", 
f->base.id, f->base.name, f->imp, f->mod, FUNC_LANG_INT, f->type, 
f->side_effect ? "true" : "false", f->varres ? "true" : "false", f->vararg ? 
"true" : "false", f->s ? f->s->base.id : s->base.id);
+               if (f->res) {
+                       for (m = f->res->h; m; m = m->next, number++) {
+                               a = m->data;
+                               pos += snprintf(buf + pos, bufsize - pos, 
"insert into sys.args values (%d, %d, 'res_%d', '%s', %d, %d, %d, %d);\n", 
store_next_oid(), f->base.id, number, a->type.type->sqlname, a->type.digits, 
a->type.scale, a->inout, number);
+                       }
+               }
+               for (m = f->ops->h; m; m = m->next, number++) {
+                       a = m->data;
+                       if (a->name)
+                               pos += snprintf(buf + pos, bufsize - pos, 
"insert into sys.args values (%d, %d, '%s', '%s', %d, %d, %d, %d);\n", 
store_next_oid(), f->base.id, a->name, a->type.type->sqlname, a->type.digits, 
a->type.scale, a->inout, number);
+                       else
+                               pos += snprintf(buf + pos, bufsize - pos, 
"insert into sys.args values (%d, %d, 'arg_%d', '%s', %d, %d, %d, %d);\n", 
store_next_oid(), f->base.id, number, a->type.type->sqlname, a->type.digits, 
a->type.scale, a->inout, number);
                }
        }
+       for (n = aggrs->h; n; n = n->next) {
+               sql_func *aggr = n->data;
+               sql_arg *arg;
+
+               if (aggr->base.id >= 2000)
+                       continue;
+
+               pos += snprintf(buf + pos, bufsize - pos, "insert into 
sys.functions values (%d, '%s', '%s', '%s', %d, %d, false, %s, %s, %d);\n", 
aggr->base.id, aggr->base.name, aggr->imp, aggr->mod, FUNC_LANG_INT, 
aggr->type, aggr->varres ? "true" : "false", aggr->vararg ? "true" : "false", 
aggr->s ? aggr->s->base.id : s->base.id);
+               arg = aggr->res->h->data;
+               pos += snprintf(buf + pos, bufsize - pos, "insert into sys.args 
values (%d, %d, 'res', '%s', %d, %d, %d, 0);\n", store_next_oid(), 
aggr->base.id, arg->type.type->sqlname, arg->type.digits, arg->type.scale, 
arg->inout);
+               if (aggr->ops->h) {
+                       arg = aggr->ops->h->data;
+
+                       pos += snprintf(buf + pos, bufsize - pos, "insert into 
sys.args values (%d, %d, 'arg', '%s', %d, %d, %d, 1);\n", store_next_oid(), 
aggr->base.id, arg->type.type->sqlname, arg->type.digits, arg->type.scale, 
arg->inout);
+               }
+       }
+       pos += snprintf(buf + pos, bufsize - pos, "insert into 
sys.systemfunctions (select id from sys.functions where id < 2000 and id not in 
(select function_id from sys.systemfunctions));\n");
 
        pos += snprintf(buf + pos, bufsize - pos, "grant execute on filter 
function \"like\"(string, string, string) to public;\n");
        pos += snprintf(buf + pos, bufsize - pos, "grant execute on filter 
function \"ilike\"(string, string, string) to public;\n");
diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -59,6 +59,5518 @@ insert into sys.types values (28, 'sqlbl
 insert into sys.types values (29, 'wkb', 'geometry', 0, 0, 0, 15, 2000);
 insert into sys.types values (30, 'wkba', 'geometrya', 0, 0, 0, 16, 2000);
 insert into sys.types values (31, 'mbr', 'mbr', 0, 0, 0, 16, 2000);
+delete from sys.functions where id < 2000;
+delete from sys.args where func_id not in (select id from sys.functions);
+insert into sys.functions values (32, 'mbr_overlap', 'mbrOverlaps', 'geom', 0, 
1, false, false, false, 2000);
+insert into sys.args values (7584, 32, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7585, 32, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7586, 32, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (33, 'mbr_overlap', 'mbrOverlaps', 'geom', 0, 
1, false, false, false, 2000);
+insert into sys.args values (7587, 33, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7588, 33, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7589, 33, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (34, 'mbr_above', 'mbrAbove', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7590, 34, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7591, 34, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7592, 34, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (35, 'mbr_above', 'mbrAbove', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7593, 35, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7594, 35, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7595, 35, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (36, 'mbr_below', 'mbrBelow', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7596, 36, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7597, 36, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7598, 36, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (37, 'mbr_below', 'mbrBelow', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7599, 37, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7600, 37, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7601, 37, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (38, 'mbr_right', 'mbrRight', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7602, 38, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7603, 38, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7604, 38, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (39, 'mbr_right', 'mbrRight', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7605, 39, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7606, 39, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7607, 39, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (40, 'mbr_left', 'mbrLeft', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7608, 40, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7609, 40, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7610, 40, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (41, 'mbr_left', 'mbrLeft', 'geom', 0, 1, 
false, false, false, 2000);
+insert into sys.args values (7611, 41, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7612, 41, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7613, 41, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (42, 'mbr_overlap_or_above', 
'mbrOverlapOrAbove', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7614, 42, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7615, 42, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7616, 42, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (43, 'mbr_overlap_or_above', 
'mbrOverlapOrAbove', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7617, 43, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7618, 43, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7619, 43, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (44, 'mbr_overlap_or_below', 
'mbrOverlapOrBelow', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7620, 44, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7621, 44, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7622, 44, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (45, 'mbr_overlap_or_below', 
'mbrOverlapOrBelow', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7623, 45, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7624, 45, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7625, 45, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (46, 'mbr_overlap_or_right', 
'mbrOverlapOrRight', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7626, 46, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7627, 46, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7628, 46, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (47, 'mbr_overlap_or_right', 
'mbrOverlapOrRight', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7629, 47, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7630, 47, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7631, 47, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (48, 'mbr_overlap_or_left', 
'mbrOverlapOrLeft', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7632, 48, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7633, 48, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7634, 48, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (49, 'mbr_overlap_or_left', 
'mbrOverlapOrLeft', 'geom', 0, 1, false, false, false, 2000);
+insert into sys.args values (7635, 49, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7636, 49, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7637, 49, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (50, 'mbr_contains', 'mbrContains', 'geom', 
0, 1, false, false, false, 2000);
+insert into sys.args values (7638, 50, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7639, 50, 'arg_1', 'geometry', 0, 0, 1, 1);
+insert into sys.args values (7640, 50, 'arg_2', 'geometry', 0, 0, 1, 2);
+insert into sys.functions values (51, 'mbr_contains', 'mbrContains', 'geom', 
0, 1, false, false, false, 2000);
+insert into sys.args values (7641, 51, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7642, 51, 'arg_1', 'mbr', 0, 0, 1, 1);
+insert into sys.args values (7643, 51, 'arg_2', 'mbr', 0, 0, 1, 2);
+insert into sys.functions values (52, 'mbr_contained', 'mbrContained', 'geom', 
0, 1, false, false, false, 2000);
+insert into sys.args values (7644, 52, 'res_0', 'boolean', 1, 0, 0, 0);
+insert into sys.args values (7645, 52, 'arg_1', 'geometry', 0, 0, 1, 1);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to