Changeset: d9d6af881bc6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d9d6af881bc6
Modified Files:
        sql/backends/monet5/sql_upgrades.c
        sql/common/sql_types.c
        sql/include/sql_catalog.h
        sql/storage/store.c
Branch: privfuncs
Log Message:

Added 'private' field for functions


diffs (truncated from 1233 to 300 lines):

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
@@ -71,7 +71,7 @@ sql_fix_system_tables(Client c, mvc *sql
                sql_arg *arg;
                node *m;
 
-               if (func->base.id >= FUNC_OIDS)
+               if (func->private || func->base.id >= FUNC_OIDS)
                        continue;
 
                pos += snprintf(buf + pos, bufsize - pos,
@@ -1808,31 +1808,6 @@ sql_update_jun2020_sp1_hugeint(Client c,
 #endif
 
 static str
-sql_update_jun2020_sp2(Client c, mvc *sql, const char *prev_schema, bool 
*systabfixed)
-{
-       /* we need to update the system tables, but only if we haven't done
-        * so already, and if we are actually upgrading the database */
-       if (*systabfixed)
-               return MAL_SUCCEED;             /* already done */
-
-       char *buf = "select id from sys.functions where name = 'nullif' and 
schema_id = (select id from sys.schemas where name = 'sys');\n";
-       res_table *output;
-       char *err = SQLstatementIntern(c, buf, "update", 1, 0, &output);
-       if (err == NULL) {
-               BAT *b = BATdescriptor(output->cols[0].b);
-               if (b) {
-                       if (BATcount(b) == 0) {
-                               err = sql_fix_system_tables(c, sql, 
prev_schema);
-                               *systabfixed = true;
-                       }
-                       BBPunfix(b->batCacheid);
-               }
-               res_table_destroy(output);
-       }
-       return err;
-}
-
-static str
 sql_update_oscar_lidar(Client c)
 {
        char *query =
@@ -4815,13 +4790,6 @@ SQLupgrades(Client c, mvc *m)
        }
 #endif
 
-       if ((err = sql_update_jun2020_sp2(c, m, prev_schema, &systabfixed)) != 
NULL) {
-               TRC_CRITICAL(SQL_PARSER, "%s\n", err);
-               freeException(err);
-               GDKfree(prev_schema);
-               return -1;
-       }
-
        sql_find_subtype(&tp, "varchar", 0, 0);
        if (sql_bind_func(m, s->base.name, "lidarattach", &tp, NULL, F_PROC)) {
                if ((err = sql_update_oscar_lidar(c)) != NULL) {
diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -626,7 +626,7 @@ sql_create_arg(sql_allocator *sa, const 
 }
 
 static sql_func *
-sql_create_func_(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, sql_ftype type, bit semantics,
+sql_create_func_(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, sql_ftype type, bit semantics, bit private,
                                 int fix_scale, unsigned int res_scale, 
sql_type *res, int nargs, va_list valist)
 {
        list *ops = SA_LIST(sa, (fdestroy) &arg_destroy);
@@ -654,6 +654,7 @@ sql_create_func_(sql_allocator *sa, cons
        t->instantiated = TRUE;
        t->lang = FUNC_LANG_INT;
        t->semantics = semantics;
+       t->private = private;
        t->fix_scale = fix_scale;
        t->s = NULL;
        t->system = TRUE;
@@ -670,76 +671,76 @@ sql_create_func_(sql_allocator *sa, cons
 }
 
 static sql_func *
-sql_create_procedure(sql_allocator *sa, const char *name, const char *mod, 
const char *imp, int nargs, ...)
+sql_create_procedure(sql_allocator *sa, const char *name, const char *mod, 
const char *imp, bit private, int nargs, ...)
 {
        sql_func *res;
        va_list valist;
 
        va_start(valist, nargs);
-       res = sql_create_func_(sa, name, mod, imp, F_PROC, TRUE, SCALE_NONE, 0, 
NULL, nargs, valist);
+       res = sql_create_func_(sa, name, mod, imp, F_PROC, TRUE, private, 
SCALE_NONE, 0, NULL, nargs, valist);
        va_end(valist);
        return res;
 }
 
 static sql_func *
-sql_create_func(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, bit semantics, int fix_scale,
+sql_create_func(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, bit semantics, bit private, int fix_scale,
                                unsigned int res_scale, sql_type *fres, int 
nargs, ...)
 {
        sql_func *res;
        va_list valist;
 
        va_start(valist, nargs);
-       res = sql_create_func_(sa, name, mod, imp, F_FUNC, semantics, 
fix_scale, res_scale, fres, nargs, valist);
+       res = sql_create_func_(sa, name, mod, imp, F_FUNC, semantics, private, 
fix_scale, res_scale, fres, nargs, valist);
        va_end(valist);
        return res;
 }
 
 static sql_func *
-sql_create_aggr(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, bit semantics, sql_type *fres, int nargs, ...)
+sql_create_aggr(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, bit semantics, bit private, sql_type *fres, int nargs, ...)
 {
        sql_func *res;
        va_list valist;
 
        va_start(valist, nargs);
-       res = sql_create_func_(sa, name, mod, imp, F_AGGR, semantics, 
SCALE_NONE, 0, fres, nargs, valist);
+       res = sql_create_func_(sa, name, mod, imp, F_AGGR, semantics, private, 
SCALE_NONE, 0, fres, nargs, valist);
        va_end(valist);
        return res;
 }
 
 static sql_func *
-sql_create_filter(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, bit semantics, int fix_scale,
+sql_create_filter(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, bit semantics, bit private, int fix_scale,
                                unsigned int res_scale, int nargs, ...)
 {
        sql_func *res;
        va_list valist;
 
        va_start(valist, nargs);
-       res = sql_create_func_(sa, name, mod, imp, F_FILT, semantics, 
fix_scale, res_scale, BIT, nargs, valist);
+       res = sql_create_func_(sa, name, mod, imp, F_FILT, semantics, private, 
fix_scale, res_scale, BIT, nargs, valist);
        va_end(valist);
        return res;
 }
 
 static sql_func *
-sql_create_union(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, int fix_scale,
+sql_create_union(sql_allocator *sa, const char *name, const char *mod, const 
char *imp, bit private, int fix_scale,
                                unsigned int res_scale, sql_type *fres, int 
nargs, ...)
 {
        sql_func *res;
        va_list valist;
 
        va_start(valist, nargs);
-       res = sql_create_func_(sa, name, mod, imp, F_UNION, TRUE, fix_scale, 
res_scale, fres, nargs, valist);
+       res = sql_create_func_(sa, name, mod, imp, F_UNION, TRUE, private, 
fix_scale, res_scale, fres, nargs, valist);
        va_end(valist);
        return res;
 }
 
 static sql_func *
-sql_create_analytic(sql_allocator *sa, const char *name, const char *mod, 
const char *imp, int fix_scale, sql_type *fres, int nargs, ...)
+sql_create_analytic(sql_allocator *sa, const char *name, const char *mod, 
const char *imp, bit private, int fix_scale, sql_type *fres, int nargs, ...)
 {
        sql_func *res;
        va_list valist;
 
        va_start(valist, nargs);
-       res = sql_create_func_(sa, name, mod, imp, F_ANALYTIC, TRUE, fix_scale, 
0, fres, nargs, valist);
+       res = sql_create_func_(sa, name, mod, imp, F_ANALYTIC, TRUE, private, 
fix_scale, 0, fres, nargs, valist);
        va_end(valist);
        return res;
 }
@@ -842,8 +843,8 @@ sqltypeinit( sql_allocator *sa)
 
        BLOB = *t++ = sql_create_type(sa, "BLOB", 0, 0, 0, EC_BLOB, "blob");
 
-       sql_create_func(sa, "length", "blob", "nitems", FALSE, SCALE_NONE, 0, 
INT, 1, BLOB);
-       sql_create_func(sa, "octet_length", "blob", "nitems", FALSE, 
SCALE_NONE, 0, INT, 1, BLOB);
+       sql_create_func(sa, "length", "blob", "nitems", FALSE, FALSE, 
SCALE_NONE, 0, INT, 1, BLOB);
+       sql_create_func(sa, "octet_length", "blob", "nitems", FALSE, FALSE, 
SCALE_NONE, 0, INT, 1, BLOB);
 
        if (backend_has_module(&(int){0}, "geom")) { /* not the old version, 
change into check for module existence */
                // the geom module is loaded
@@ -855,335 +856,334 @@ sqltypeinit( sql_allocator *sa)
                MBR = *t++ = sql_create_type(sa, "MBR", 0, SCALE_NONE, 0, 
EC_EXTERNAL, "mbr");
 
                /* mbr operator functions */
-               sql_create_func(sa, "mbr_overlap", "geom", "mbrOverlaps", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_overlap", "geom", "mbrOverlaps", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_above", "geom", "mbrAbove", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_above", "geom", "mbrAbove", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_below", "geom", "mbrBelow", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_below", "geom", "mbrBelow", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_right", "geom", "mbrRight", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_right", "geom", "mbrRight", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_left", "geom", "mbrLeft", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_left", "geom", "mbrLeft", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_overlap_or_above", "geom", 
"mbrOverlapOrAbove", TRUE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_overlap_or_above", "geom", 
"mbrOverlapOrAbove", TRUE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_overlap_or_below", "geom", 
"mbrOverlapOrBelow", TRUE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_overlap_or_below", "geom", 
"mbrOverlapOrBelow", TRUE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_overlap_or_right", "geom", 
"mbrOverlapOrRight", TRUE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_overlap_or_right", "geom", 
"mbrOverlapOrRight", TRUE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_overlap_or_left", "geom", 
"mbrOverlapOrLeft", TRUE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_overlap_or_left", "geom", 
"mbrOverlapOrLeft", TRUE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_contains", "geom", "mbrContains", 
TRUE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_contains", "geom", "mbrContains", 
TRUE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_contained", "geom", "mbrContained", 
TRUE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_contained", "geom", "mbrContained", 
TRUE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_equal", "geom", "mbrEqual", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_equal", "geom", "mbrEqual", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "mbr_distance", "geom", "mbrDistance", 
TRUE, SCALE_FIX, 0, DBL, 2, GEOM, GEOM);
-               sql_create_func(sa, "mbr_distance", "geom", "mbrDistance", 
TRUE, SCALE_FIX, 0, DBL, 2, MBR, MBR);
-               sql_create_func(sa, "left_shift", "geom", "mbrLeft", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "left_shift", "geom", "mbrLeft", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
-               sql_create_func(sa, "right_shift", "geom", "mbrRight", TRUE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
-               sql_create_func(sa, "right_shift", "geom", "mbrRight", TRUE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_overlap", "geom", "mbrOverlaps", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_overlap", "geom", "mbrOverlaps", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_above", "geom", "mbrAbove", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_above", "geom", "mbrAbove", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_below", "geom", "mbrBelow", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_below", "geom", "mbrBelow", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_right", "geom", "mbrRight", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_right", "geom", "mbrRight", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_left", "geom", "mbrLeft", TRUE, FALSE, 
SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_left", "geom", "mbrLeft", TRUE, FALSE, 
SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_overlap_or_above", "geom", 
"mbrOverlapOrAbove", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_overlap_or_above", "geom", 
"mbrOverlapOrAbove", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_overlap_or_below", "geom", 
"mbrOverlapOrBelow", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_overlap_or_below", "geom", 
"mbrOverlapOrBelow", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_overlap_or_right", "geom", 
"mbrOverlapOrRight", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_overlap_or_right", "geom", 
"mbrOverlapOrRight", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_overlap_or_left", "geom", 
"mbrOverlapOrLeft", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_overlap_or_left", "geom", 
"mbrOverlapOrLeft", TRUE, FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_contains", "geom", "mbrContains", 
TRUE, FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_contains", "geom", "mbrContains", 
TRUE, FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_contained", "geom", "mbrContained", 
TRUE, FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_contained", "geom", "mbrContained", 
TRUE, FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_equal", "geom", "mbrEqual", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_equal", "geom", "mbrEqual", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "mbr_distance", "geom", "mbrDistance", 
TRUE, FALSE, SCALE_FIX, 0, DBL, 2, GEOM, GEOM);
+               sql_create_func(sa, "mbr_distance", "geom", "mbrDistance", 
TRUE, FALSE, SCALE_FIX, 0, DBL, 2, MBR, MBR);
+               sql_create_func(sa, "left_shift", "geom", "mbrLeft", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "left_shift", "geom", "mbrLeft", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
+               sql_create_func(sa, "right_shift", "geom", "mbrRight", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, GEOM, GEOM);
+               sql_create_func(sa, "right_shift", "geom", "mbrRight", TRUE, 
FALSE, SCALE_FIX, 0, BIT, 2, MBR, MBR);
        }
 
        *t = NULL;
 
-//     sql_create_func(sa, "st_pointfromtext", "geom", "st_pointformtext", 
TRUE, SCALE_NONE, 0, OID, 1, OID);
        /* The grouping aggregate doesn't have a backend implementation. It 
gets replaced at rel_unnest */
-       sql_create_aggr(sa, "grouping", "", "", TRUE, BTE, 1, ANY);
-       sql_create_aggr(sa, "grouping", "", "", TRUE, SHT, 1, ANY);
-       sql_create_aggr(sa, "grouping", "", "", TRUE, INT, 1, ANY);
-       sql_create_aggr(sa, "grouping", "", "", TRUE, LNG, 1, ANY);
+       sql_create_aggr(sa, "grouping", "", "", TRUE, TRUE, BTE, 1, ANY);
+       sql_create_aggr(sa, "grouping", "", "", TRUE, TRUE, SHT, 1, ANY);
+       sql_create_aggr(sa, "grouping", "", "", TRUE, TRUE, INT, 1, ANY);
+       sql_create_aggr(sa, "grouping", "", "", TRUE, TRUE, LNG, 1, ANY);
 #ifdef HAVE_HGE
-       sql_create_aggr(sa, "grouping", "", "", TRUE, HGE, 1, ANY);
+       sql_create_aggr(sa, "grouping", "", "", TRUE, TRUE, HGE, 1, ANY);
 #endif
 
-       sql_create_aggr(sa, "not_unique", "aggr", "not_unique", TRUE, BIT, 1, 
OID);
+       sql_create_aggr(sa, "not_unique", "aggr", "not_unique", TRUE, TRUE, 
BIT, 1, OID);
        /* well to be precise it does reduce and map */
 
        /* functions needed for all types */
-       sql_create_func(sa, "hash", "mkey", "hash", TRUE, SCALE_FIX, 0, LNG, 1, 
ANY);
-       sql_create_func(sa, "rotate_xor_hash", "calc", "rotate_xor_hash", TRUE, 
SCALE_NONE, 0, LNG, 3, LNG, INT, ANY);
-       sql_create_func(sa, "=", "calc", "=", FALSE, SCALE_FIX, 0, BIT, 2, ANY, 
ANY);
-       sql_create_func(sa, "<>", "calc", "!=", FALSE, SCALE_FIX, 0, BIT, 2, 
ANY, ANY);
-       sql_create_func(sa, "isnull", "calc", "isnil", TRUE, SCALE_FIX, 0, BIT, 
1, ANY);
-       sql_create_func(sa, "isnotnull", "calc", "isnotnil", TRUE, SCALE_FIX, 
0, BIT, 1, ANY);
-       sql_create_func(sa, ">", "calc", ">", FALSE, SCALE_FIX, 0, BIT, 2, ANY, 
ANY);
-       sql_create_func(sa, ">=", "calc", ">=", FALSE, SCALE_FIX, 0, BIT, 2, 
ANY, ANY);
-       sql_create_func(sa, "<", "calc", "<", FALSE, SCALE_FIX, 0, BIT, 2, ANY, 
ANY);
-       sql_create_func(sa, "<=", "calc", "<=", FALSE, SCALE_FIX, 0, BIT, 2, 
ANY, ANY);
-       sql_create_func(sa, "between", "calc", "between", FALSE, SCALE_FIX, 0, 
BIT, 8, ANY, ANY, ANY, BIT, BIT, BIT, BIT, BIT);
-       sql_create_aggr(sa, "zero_or_one", "aggr", "zero_or_one", TRUE, ANY, 1, 
ANY);
-       sql_create_aggr(sa, "all", "aggr", "all", TRUE, ANY, 1, ANY);
-       sql_create_aggr(sa, "null", "aggr", "null", TRUE, BIT, 1, ANY);
-       sql_create_func(sa, "any", "sql", "any", TRUE, SCALE_NONE, 0, BIT, 3, 
BIT, BIT, BIT);
-       sql_create_func(sa, "all", "sql", "all", TRUE, SCALE_NONE, 0, BIT, 3, 
BIT, BIT, BIT);
-       sql_create_aggr(sa, "anyequal", "aggr", "anyequal", TRUE, BIT, 1, ANY); 
/* needs 3 arguments (l,r,nil)(ugh) */
-       sql_create_aggr(sa, "allnotequal", "aggr", "allnotequal", TRUE, BIT, 1, 
ANY); /* needs 3 arguments (l,r,nil)(ugh) */
-       sql_create_func(sa, "sql_anyequal", "aggr", "anyequal", TRUE, 
SCALE_NONE, 0, BIT, 2, ANY, ANY);
-       sql_create_func(sa, "sql_not_anyequal", "aggr", "not_anyequal", TRUE, 
SCALE_NONE, 0, BIT, 2, ANY, ANY);
-       sql_create_aggr(sa, "exist", "aggr", "exist", TRUE, BIT, 1, ANY);
-       sql_create_aggr(sa, "not_exist", "aggr", "not_exist", TRUE, BIT, 1, 
ANY);
-       sql_create_func(sa, "sql_exists", "aggr", "exist", TRUE, SCALE_NONE, 0, 
BIT, 1, ANY);
-       sql_create_func(sa, "sql_not_exists", "aggr", "not_exist", TRUE, 
SCALE_NONE, 0, BIT, 1, ANY);
+       sql_create_func(sa, "hash", "mkey", "hash", TRUE, TRUE, SCALE_FIX, 0, 
LNG, 1, ANY);
+       sql_create_func(sa, "rotate_xor_hash", "calc", "rotate_xor_hash", TRUE, 
TRUE, SCALE_NONE, 0, LNG, 3, LNG, INT, ANY);
+       sql_create_func(sa, "=", "calc", "=", FALSE, FALSE, SCALE_FIX, 0, BIT, 
2, ANY, ANY);
+       sql_create_func(sa, "<>", "calc", "!=", FALSE, FALSE, SCALE_FIX, 0, 
BIT, 2, ANY, ANY);
+       sql_create_func(sa, "isnull", "calc", "isnil", TRUE, FALSE, SCALE_FIX, 
0, BIT, 1, ANY);
+       sql_create_func(sa, "isnotnull", "calc", "isnotnil", TRUE, FALSE, 
SCALE_FIX, 0, BIT, 1, ANY);
+       sql_create_func(sa, ">", "calc", ">", FALSE, FALSE, SCALE_FIX, 0, BIT, 
2, ANY, ANY);
+       sql_create_func(sa, ">=", "calc", ">=", FALSE, FALSE, SCALE_FIX, 0, 
BIT, 2, ANY, ANY);
+       sql_create_func(sa, "<", "calc", "<", FALSE, FALSE, SCALE_FIX, 0, BIT, 
2, ANY, ANY);
+       sql_create_func(sa, "<=", "calc", "<=", FALSE, FALSE, SCALE_FIX, 0, 
BIT, 2, ANY, ANY);
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to