Changeset: 68cd82d57422 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=68cd82d57422
Modified Files:
        clients/Tests/MAL-signatures_all.stable.out
        clients/Tests/MAL-signatures_fits_geom.stable.out
        clients/Tests/MAL-signatures_geom.stable.out
        clients/Tests/MAL-signatures_none.stable.out
        monetdb5/modules/atoms/inet.mal
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_upgrades.c
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check1_bam.stable.out
        sql/test/leaks/Tests/check1_nogeom.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check2_bam.stable.out
        sql/test/leaks/Tests/check2_nogeom.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check3_bam.stable.out
        sql/test/leaks/Tests/check3_nogeom.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check4_bam.stable.out
        sql/test/leaks/Tests/check4_nogeom.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/leaks/Tests/check5_bam.stable.out
        sql/test/leaks/Tests/check5_nogeom.stable.out
        sql/test/leaks/Tests/drop3.stable.out
        sql/test/leaks/Tests/drop3_bam.stable.out
        sql/test/leaks/Tests/drop3_nogeom.stable.out
        sql/test/leaks/Tests/select1.stable.out
        sql/test/leaks/Tests/select1_bam.stable.out
        sql/test/leaks/Tests/select1_nogeom.stable.out
        sql/test/leaks/Tests/select2.stable.out
        sql/test/leaks/Tests/select2_bam.stable.out
        sql/test/leaks/Tests/select2_nogeom.stable.out
        sql/test/leaks/Tests/temp1.stable.out
        sql/test/leaks/Tests/temp1_bam.stable.out
        sql/test/leaks/Tests/temp1_nogeom.stable.out
        sql/test/leaks/Tests/temp2.stable.out
        sql/test/leaks/Tests/temp2_bam.stable.out
        sql/test/leaks/Tests/temp2_nogeom.stable.out
        sql/test/leaks/Tests/temp3.stable.out
        sql/test/leaks/Tests/temp3_bam.stable.out
        sql/test/leaks/Tests/temp3_nogeom.stable.out
        sql/test/testdb-upgrade-chain/Tests/dump.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
Branch: default
Log Message:

Merge with Oct2014 branch.


diffs (truncated from 852 to 300 lines):

diff --git a/clients/Tests/MAL-signatures_all.stable.out 
b/clients/Tests/MAL-signatures_all.stable.out
--- a/clients/Tests/MAL-signatures_all.stable.out
+++ b/clients/Tests/MAL-signatures_all.stable.out
@@ -34544,7 +34544,7 @@ pattern calc.==(v1:bit,v2:bit):bit
 address CMDvarEQ;
 comment Return V1 == V2
 
-command calc.=(v:inet,w:inet):bit 
+command calc.==(v:inet,w:inet):bit 
 address INET_comp_EQ;
 comment Equality of two inets
 
@@ -41458,7 +41458,11 @@ pattern sql.copy_from(sname:str,tname:st
 address mvc_import_table_wrap;
 comment Import a table from bstream s with the         given tuple and 
seperators (sep/rsep)
 
-pattern sql.create_func_upgrade_oct2014(f:str):int 
+pattern sql.create_view_upgrade_oct2014(sname:str,v:str):int 
+address UPGcreate_view;
+comment Create the view described by f, needed for the Oct2014 upgrade
+
+pattern sql.create_func_upgrade_oct2014(sname:str,f:str):int 
 address UPGcreate_func;
 comment Create the function described by f, needed for the Oct2014 upgrade
 
diff --git a/clients/Tests/MAL-signatures_fits_geom.stable.out 
b/clients/Tests/MAL-signatures_fits_geom.stable.out
--- a/clients/Tests/MAL-signatures_fits_geom.stable.out
+++ b/clients/Tests/MAL-signatures_fits_geom.stable.out
@@ -34465,7 +34465,7 @@ pattern calc.==(v1:bit,v2:bit):bit
 address CMDvarEQ;
 comment Return V1 == V2
 
-command calc.=(v:inet,w:inet):bit 
+command calc.==(v:inet,w:inet):bit 
 address INET_comp_EQ;
 comment Equality of two inets
 
@@ -41348,7 +41348,11 @@ pattern sql.copy_from(sname:str,tname:st
 address mvc_import_table_wrap;
 comment Import a table from bstream s with the         given tuple and 
seperators (sep/rsep)
 
-pattern sql.create_func_upgrade_oct2014(f:str):int 
+pattern sql.create_view_upgrade_oct2014(sname:str,v:str):int 
+address UPGcreate_view;
+comment Create the view described by f, needed for the Oct2014 upgrade
+
+pattern sql.create_func_upgrade_oct2014(sname:str,f:str):int 
 address UPGcreate_func;
 comment Create the function described by f, needed for the Oct2014 upgrade
 
diff --git a/clients/Tests/MAL-signatures_geom.stable.out 
b/clients/Tests/MAL-signatures_geom.stable.out
--- a/clients/Tests/MAL-signatures_geom.stable.out
+++ b/clients/Tests/MAL-signatures_geom.stable.out
@@ -34465,7 +34465,7 @@ pattern calc.==(v1:bit,v2:bit):bit
 address CMDvarEQ;
 comment Return V1 == V2
 
-command calc.=(v:inet,w:inet):bit 
+command calc.==(v:inet,w:inet):bit 
 address INET_comp_EQ;
 comment Equality of two inets
 
@@ -41324,7 +41324,11 @@ pattern sql.copy_from(sname:str,tname:st
 address mvc_import_table_wrap;
 comment Import a table from bstream s with the         given tuple and 
seperators (sep/rsep)
 
-pattern sql.create_func_upgrade_oct2014(f:str):int 
+pattern sql.create_view_upgrade_oct2014(sname:str,v:str):int 
+address UPGcreate_view;
+comment Create the view described by f, needed for the Oct2014 upgrade
+
+pattern sql.create_func_upgrade_oct2014(sname:str,f:str):int 
 address UPGcreate_func;
 comment Create the function described by f, needed for the Oct2014 upgrade
 
diff --git a/clients/Tests/MAL-signatures_none.stable.out 
b/clients/Tests/MAL-signatures_none.stable.out
--- a/clients/Tests/MAL-signatures_none.stable.out
+++ b/clients/Tests/MAL-signatures_none.stable.out
@@ -34460,7 +34460,7 @@ pattern calc.==(v1:bit,v2:bit):bit
 address CMDvarEQ;
 comment Return V1 == V2
 
-command calc.=(v:inet,w:inet):bit 
+command calc.==(v:inet,w:inet):bit 
 address INET_comp_EQ;
 comment Equality of two inets
 
@@ -41137,7 +41137,11 @@ pattern sql.copy_from(sname:str,tname:st
 address mvc_import_table_wrap;
 comment Import a table from bstream s with the         given tuple and 
seperators (sep/rsep)
 
-pattern sql.create_func_upgrade_oct2014(f:str):int 
+pattern sql.create_view_upgrade_oct2014(sname:str,v:str):int 
+address UPGcreate_view;
+comment Create the view described by f, needed for the Oct2014 upgrade
+
+pattern sql.create_func_upgrade_oct2014(sname:str,f:str):int 
 address UPGcreate_func;
 comment Create the function described by f, needed for the Oct2014 upgrade
 
diff --git a/monetdb5/modules/atoms/inet.mal b/monetdb5/modules/atoms/inet.mal
--- a/monetdb5/modules/atoms/inet.mal
+++ b/monetdb5/modules/atoms/inet.mal
@@ -99,7 +99,7 @@ command isnil(v:inet):bit
 address INET_isnil
 comment "Nil test for inet value";
 
-command =(v:inet,w:inet):bit
+command ==(v:inet,w:inet):bit
 address INET_comp_EQ
 comment "Equality of two inets";
 
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
@@ -40,9 +40,6 @@ sql_update_feb2013(Client c)
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_samp(val SMALLINT) returns DOUBLE external name 
\"aggr\".\"stdev\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_samp(val INTEGER) returns DOUBLE external name 
\"aggr\".\"stdev\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_samp(val BIGINT) returns DOUBLE external name 
\"aggr\".\"stdev\";\n");
-#ifdef HAVE_HGE
-       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_samp(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"stdev\";\n");
-#endif
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_samp(val REAL) returns DOUBLE external name \"aggr\".\"stdev\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_samp(val DOUBLE) returns DOUBLE external name 
\"aggr\".\"stdev\";\n");
 
@@ -54,9 +51,6 @@ sql_update_feb2013(Client c)
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_pop(val SMALLINT) returns DOUBLE external name 
\"aggr\".\"stdevp\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_pop(val INTEGER) returns DOUBLE external name 
\"aggr\".\"stdevp\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_pop(val BIGINT) returns DOUBLE external name 
\"aggr\".\"stdevp\";\n");
-#ifdef HAVE_HGE
-       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_pop(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"stdevp\";\n");
-#endif
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_pop(val REAL) returns DOUBLE external name \"aggr\".\"stdevp\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_pop(val DOUBLE) returns DOUBLE external name 
\"aggr\".\"stdevp\";\n");
 
@@ -68,9 +62,6 @@ sql_update_feb2013(Client c)
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_samp(val SMALLINT) returns DOUBLE external name 
\"aggr\".\"variance\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_samp(val INTEGER) returns DOUBLE external name 
\"aggr\".\"variance\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_samp(val BIGINT) returns DOUBLE external name 
\"aggr\".\"variance\";\n");
-#ifdef HAVE_HGE
-       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_samp(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"variance\";\n");
-#endif
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_samp(val REAL) returns DOUBLE external name \"aggr\".\"variance\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_samp(val DOUBLE) returns DOUBLE external name 
\"aggr\".\"variance\";\n");
 
@@ -82,9 +73,6 @@ sql_update_feb2013(Client c)
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_pop(val SMALLINT) returns DOUBLE external name 
\"aggr\".\"variancep\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_pop(val INTEGER) returns DOUBLE external name 
\"aggr\".\"variancep\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_pop(val BIGINT) returns DOUBLE external name 
\"aggr\".\"variancep\";\n");
-#ifdef HAVE_HGE
-       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_pop(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"variancep\";\n");
-#endif
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_pop(val REAL) returns DOUBLE external name \"aggr\".\"variancep\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_pop(val DOUBLE) returns DOUBLE external name 
\"aggr\".\"variancep\";\n");
 
@@ -113,10 +101,8 @@ sql_update_feb2013_sp1(Client c)
        /* sys.stddev functions */
        pos += snprintf(buf + pos, bufsize - pos, "drop filter function 
sys.\"like\"(string, string, string);\n");
        pos += snprintf(buf + pos, bufsize - pos, "drop filter function 
sys.\"ilike\"(string, string, string);\n");
-       pos += snprintf(buf + pos, bufsize - pos, "create filter function 
sys.\"like\"(val string, pat string, esc string) external name 
algebra.\"like\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "create filter function 
sys.\"ilike\"(val string, pat string, esc string) external name 
algebra.\"ilike\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "create filter function 
sys.\"like\"(val string, pat string) external name algebra.\"like\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "create filter function 
sys.\"ilike\"(val string, pat string) external name algebra.\"ilike\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "create filter function 
sys.\"like\"(val string, pat string, esc string) external name 
algebra.likesubselect;\n");
+       pos += snprintf(buf + pos, bufsize - pos, "create filter function 
sys.\"ilike\"(val string, pat string, esc string) external name 
algebra.ilikesubselect;\n");
 
        pos += snprintf(buf + pos, bufsize - pos, "drop function 
sys.storage;\n");
 
@@ -430,9 +416,6 @@ external name sql.sysmon_stop;\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
quantile(val INTEGER, q DOUBLE) returns INTEGER external name 
\"aggr\".\"quantile\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
quantile(val WRD, q DOUBLE) returns WRD external name 
\"aggr\".\"quantile\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
quantile(val BIGINT, q DOUBLE) returns BIGINT external name 
\"aggr\".\"quantile\";\n");
-#ifdef HAVE_HGE
-       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
quantile(val HUGEINT, q DOUBLE) returns HUGEINT external name 
\"aggr\".\"quantile\";\n");
-#endif
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
quantile(val DECIMAL, q DOUBLE) returns DECIMAL external name 
\"aggr\".\"quantile\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
quantile(val REAL, q DOUBLE) returns REAL external name 
\"aggr\".\"quantile\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
quantile(val DOUBLE, q DOUBLE) returns DOUBLE external name 
\"aggr\".\"quantile\";\n");
@@ -648,6 +631,7 @@ sql_update_oct2014_2(Client c)
                                SQLautocommit(c, sql);
                        SQLtrans(sql);
                }
+               GDKfree(buf);
        }
 
        if (iresult) {
@@ -694,6 +678,7 @@ sql_update_oct2014_2(Client c)
                                SQLautocommit(c, sql);
                        SQLtrans(sql);
                }
+               GDKfree(buf);
        }
 
 
@@ -768,6 +753,10 @@ sql_update_oct2014(Client c)
        /* recreate views depending on union funcs */
        pos += snprintf(buf + pos, bufsize - pos, "create function 
create_view_upgrade_oct2014( sname string, f string ) returns int external name 
sql.create_view_upgrade_oct2014;\n");
        pos += snprintf(buf + pos, bufsize - pos, "insert into 
upgradeOct2014_changes select create_view_upgrade_oct2014(name, query) from 
upgradeOct2014_views;\n");
+       pos += snprintf(buf + pos, bufsize - pos, "\
+       update _tables set system = true where name in ('tables', 'columns', 
'users', 'querylog_catalog', 'querylog_calls', 'querylog_history', 'tracelog', 
'sessions', 'optimizers', 'environment', 'queue', 'storage', 'storagemodel', 
'tablestoragemodel') and schema_id = (select id from schemas where name = 
'sys');\n\
+       insert into systemfunctions (select id from functions where name in 
('bbp', 'db_users', 'dependencies_columns_on_functions', 
'dependencies_columns_on_indexes', 'dependencies_columns_on_keys', 
'dependencies_columns_on_triggers', 'dependencies_columns_on_views', 
'dependencies_functions_on_functions', 'dependencies_functions_os_triggers', 
'dependencies_keys_on_foreignkeys', 'dependencies_owners_on_schemas', 
'dependencies_schemas_on_users', 'dependencies_tables_on_foreignkeys', 
'dependencies_tables_on_functions', 'dependencies_tables_on_indexes', 
'dependencies_tables_on_triggers', 'dependencies_tables_on_views', 
'dependencies_views_on_functions', 'dependencies_views_on_triggers', 'env', 
'environment', 'generate_series', 'optimizers', 'optimizer_stats', 
'querycache', 'querylog_calls', 'querylog_catalog', 'queue', 'sessions', 
'storage', 'storagemodel', 'tojsonarray', 'tracelog', 'var') and schema_id = 
(select id from schemas where name = 'sys') and id not in (select function_id 
from syst
 emfunctions));\n\
+       delete from systemfunctions where function_id not in (select id from 
functions);\n");
        pos += snprintf(buf + pos, bufsize - pos, "drop function 
create_view_upgrade_oct2014;\n");
 
        pos += snprintf(buf + pos, bufsize - pos, "drop table 
upgradeOct2014_views;\n");
@@ -972,6 +961,55 @@ create aggregate json.tojsonarray( x dou
                return sql_update_oct2014_2(c);
        return err;             /* usually MAL_SUCCEED */
 }
+
+static str
+sql_update_oct2014_sp1(Client c)
+{
+       size_t bufsize = 8192*2, pos = 0;
+       char *buf = GDKmalloc(bufsize), *err = NULL;
+       mvc *sql = ((backend*) c->sqlcontext)->mvc;
+       ValRecord *schvar = stack_get_var(sql, "current_schema");
+       char *schema = NULL;
+
+       if (schvar)
+               schema = strdup(schvar->val.sval);
+
+       pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n\
+       create table upgradeOct2014_views as (select s.name, t.query from 
tables t, schemas s where s.id = t.schema_id and t.id in (select d.depend_id 
from dependencies d where d.id in (select f.id from functions f where f.func 
ilike '%%returns table%%' and f.name not in ('env', 'var', 'db_users') and 
f.language <> 0) and d.depend_type = 5)) with data;\n\
+       create table upgradeOct2014 as select s.name, f.func, f.id from 
functions f, schemas s where s.id = f.schema_id and f.func ilike '%%returns 
table%%' and f.name not in ('env', 'var', 'db_users') and f.language <> 0 order 
by f.id with data;\n\
+       create table upgradeOct2014_changes (c bigint);\n\
+       \n\
+       create function drop_func_upgrade_oct2014( id integer ) returns int 
external name sql.drop_func_upgrade_oct2014;\n\
+       insert into upgradeOct2014_changes select drop_func_upgrade_oct2014(id) 
from upgradeOct2014;\n\
+       drop function drop_func_upgrade_oct2014;\n\
+       \n\
+       create function create_func_upgrade_oct2014( sname string, f string ) 
returns int external name sql.create_func_upgrade_oct2014;\n\
+       insert into upgradeOct2014_changes select 
create_func_upgrade_oct2014(name, func) from upgradeOct2014;\n\
+       drop function create_func_upgrade_oct2014;\n\
+       \n\
+       create function create_view_upgrade_oct2014( sname string, f string ) 
returns int external name sql.create_view_upgrade_oct2014;\n\
+       insert into upgradeOct2014_changes select 
create_view_upgrade_oct2014(name, query) from upgradeOct2014_views;\n\
+       update _tables set system = true where name in ('tables', 'columns', 
'users', 'querylog_catalog', 'querylog_calls', 'querylog_history', 'tracelog', 
'sessions', 'optimizers', 'environment', 'queue', 'storage', 'storagemodel', 
'tablestoragemodel') and schema_id = (select id from schemas where name = 
'sys');\n\
+       insert into systemfunctions (select id from functions where name in 
('bbp', 'db_users', 'dependencies_columns_on_functions', 
'dependencies_columns_on_indexes', 'dependencies_columns_on_keys', 
'dependencies_columns_on_triggers', 'dependencies_columns_on_views', 
'dependencies_functions_on_functions', 'dependencies_functions_os_triggers', 
'dependencies_keys_on_foreignkeys', 'dependencies_owners_on_schemas', 
'dependencies_schemas_on_users', 'dependencies_tables_on_foreignkeys', 
'dependencies_tables_on_functions', 'dependencies_tables_on_indexes', 
'dependencies_tables_on_triggers', 'dependencies_tables_on_views', 
'dependencies_views_on_functions', 'dependencies_views_on_triggers', 'env', 
'environment', 'generate_series', 'optimizers', 'optimizer_stats', 
'querycache', 'querylog_calls', 'querylog_catalog', 'queue', 'sessions', 
'storage', 'storagemodel', 'tojsonarray', 'tracelog', 'var') and schema_id = 
(select id from schemas where name = 'sys') and id not in (select function_id 
from syst
 emfunctions));\n\
+       delete from systemfunctions where function_id not in (select id from 
functions);\n\
+       drop function create_view_upgrade_oct2014;\n\
+                                               \n\
+       drop table upgradeOct2014_views;\n\
+       drop table upgradeOct2014_changes;\n\
+       drop table upgradeOct2014;\n");
+
+       if (schema) {
+               pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", schema);
+               free(schema);
+       }
+       assert(pos < bufsize);
+
+       printf("Running database upgrade commands:\n%s\n", buf);
+       err = SQLstatementIntern(c, &buf, "update", 1, 0, NULL);
+       GDKfree(buf);
+       return err;             /* usually MAL_SUCCEED */
+}
+
 static str
 sql_update_feb2015(Client c)
 {
@@ -983,6 +1021,13 @@ sql_update_feb2015(Client c)
        pos += snprintf(buf+pos, bufsize - pos, "create function epoch(t 
timestamp) returns int external name timestamp.epoch;\n");
        pos += snprintf(buf+pos, bufsize - pos, "create function epoch(t 
bigint) returns timestamp external name calc.timestamp;\n");
 
+#ifdef HAVE_HGE
+       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_samp(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"stdev\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.stddev_pop(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"stdevp\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_samp(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"variance\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "create aggregate 
sys.var_pop(val HUGEINT) returns DOUBLE external name 
\"aggr\".\"variancep\";\n");
+#endif
+
        printf("Running database upgrade commands:\n%s\n", buf);
        err = SQLstatementIntern(c, &buf, "update", 1, 0, NULL);
        GDKfree(buf);
@@ -1040,6 +1085,14 @@ SQLupgrades(Client c, mvc *m)
                        GDKfree(err);
                }
        }
+       /* if table returning function sys.environment() does not exist, we 
need to
+        * update from oct2014->sp1 */
+       if (!sql_bind_func(m->sa, mvc_bind_schema(m, "sys"), "environment", 
NULL, NULL, F_UNION)) {
+               if ((err = sql_update_oct2014_sp1(c)) !=NULL) {
+                       fprintf(stderr, "!%s\n", err);
+                       GDKfree(err);
+               }
+       }
        /* add missing features needed beyond Oct 2014 */
        sql_find_subtype(&tp, "timestamp", 0, 0);
        if ( 0 &&  !sql_bind_func(m->sa, mvc_bind_schema(m, "sys"), "epoch", 
&tp, NULL, F_FUNC) ){
diff --git a/sql/test/leaks/Tests/check1.stable.out 
b/sql/test/leaks/Tests/check1.stable.out
--- a/sql/test/leaks/Tests/check1.stable.out
+++ b/sql/test/leaks/Tests/check1.stable.out
@@ -199,7 +199,7 @@ Ready.
 % L1,  L2 # name
 % char,        wrd # type
 % 9,   3 # length
-[ "transient", 173     ]
+[ "transient", 183     ]
 #select 'persistent', count(*) from bbp() as bbp where kind like 'pers%';
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to