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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list