Changeset: 6b8e830e1c84 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6b8e830e1c84
Modified Files:
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.int128
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.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: default
Log Message:
Added upgrade code for some changes in the default branch.
dropping sys.connections; adding some stuff in profiler and schema
extensions.
diffs (truncated from 663 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
@@ -1242,6 +1242,67 @@ sql_update_dec2016_sp2(Client c, mvc *sq
return err; /* usually MAL_SUCCEED */
}
+static str
+sql_update_default(Client c, mvc *sql)
+{
+ size_t bufsize = 10000, pos = 0;
+ char *buf = GDKmalloc(bufsize), *err = NULL;
+ char *schema = stack_get_string(sql, "current_schema");
+
+ pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n");
+
+ pos += snprintf(buf + pos, bufsize - pos,
+ "delete from sys._columns where table_id = (select id
from sys._tables where name = 'connections' and schema_id = (select id from
sys.schemas where name = 'sys'));\n"
+ "delete from sys._tables where name = 'connections' and
schema_id = (select id from sys.schemas where name = 'sys');\n");
+
+ /* 46_profiler.sql */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "create function profiler.getlimit() returns integer
external name profiler.getlimit;\n"
+ "create procedure profiler.setlimit(lim integer)
external name profiler.setlimit;\n"
+ "insert into sys.systemfunctions (select id from
sys.functions where name in ('getlimit', 'setlimit') and schema_id = (select id
from sys.schemas where name = 'profiler') and id not in (select function_id
from sys.systemfunctions));\n");
+
+ /* 51_sys_schema_extensions.sql */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "CREATE TABLE sys.function_types (\n"
+ "function_type_id SMALLINT NOT NULL PRIMARY KEY,\n"
+ "function_type_name VARCHAR(30) NOT NULL UNIQUE);\n"
+ "INSERT INTO sys.function_types (function_type_id,
function_type_name) VALUES\n"
+ "(1, 'Scalar function'), (2, 'Procedure'), (3,
'Aggregate function'), (4, 'Filter function'), (5, 'Function returning a
table'),\n"
+ "(6, 'Analytic function'), (7, 'Loader function');\n"
+ "CREATE TABLE sys.function_languages (\n"
+ "language_id SMALLINT NOT NULL PRIMARY KEY,\n"
+ "language_name VARCHAR(20) NOT NULL UNIQUE);\n"
+ "INSERT INTO sys.function_languages (language_id,
language_name) VALUES\n"
+ "(0, 'Internal C'), (1, 'MAL'), (2, 'SQL'), (3, 'R'),
(4, 'C'), (5, 'Java'), (6, 'Python'), (7, 'Python Mapped');\n"
+ "CREATE TABLE sys.key_types (\n"
+ "key_type_id SMALLINT NOT NULL PRIMARY KEY,\n"
+ "key_type_name VARCHAR(15) NOT NULL UNIQUE);\n"
+ "INSERT INTO sys.key_types (key_type_id, key_type_name)
VALUES\n"
+ "(0, 'Primary Key'), (1, 'Unique Key'), (2, 'Foreign
Key');\n"
+ "CREATE TABLE sys.index_types (\n"
+ "index_type_id SMALLINT NOT NULL PRIMARY KEY,\n"
+ "index_type_name VARCHAR(25) NOT NULL UNIQUE);\n"
+ "INSERT INTO sys.index_types (index_type_id,
index_type_name) VALUES\n"
+ "(0, 'Hash'), (1, 'Join'), (2, 'Order preserving
hash'), (3, 'No-index'), (4, 'Imprint'), (5, 'Ordered');\n"
+ "CREATE TABLE sys.privilege_codes (\n"
+ "privilege_code_id INT NOT NULL PRIMARY KEY,\n"
+ "privilege_code_name VARCHAR(30) NOT NULL UNIQUE);\n"
+ "INSERT INTO sys.privilege_codes (privilege_code_id,
privilege_code_name) VALUES\n"
+ "(1, 'SELECT'), (2, 'UPDATE'), (4, 'INSERT'), (8,
'DELETE'), (16, 'EXECUTE'), (32, 'GRANT'),\n"
+ "(3, 'SELECT,UPDATE'), (5, 'SELECT,INSERT'), (6,
'INSERT,UPDATE'), (7, 'SELECT,INSERT,UPDATE'),\n"
+ "(9, 'SELECT,DELETE'), (10, 'UPDATE,DELETE'), (11,
'SELECT,UPDATE,DELETE'), (12, 'INSERT,DELETE'),\n"
+ "(13, 'SELECT,INSERT,DELETE'), (14,
'INSERT,UPDATE,DELETE'), (15, 'SELECT,INSERT,UPDATE,DELETE');\n"
+ "update sys._tables set system = true where name in
('function_languages', 'function_types', 'index_types', 'key_types',
'privilege_codes') and schema_id = (select id from sys.schemas where name =
'sys');\n");
+ if (schema)
+ pos += snprintf(buf + pos, bufsize - pos, "set schema
\"%s\";\n", 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 */
+}
+
void
SQLupgrades(Client c, mvc *m)
{
@@ -1352,4 +1413,11 @@ SQLupgrades(Client c, mvc *m)
fprintf(stderr, "!%s\n", err);
GDKfree(err);
}
+
+ if (mvc_bind_table(m, s, "function_languages") == NULL) {
+ if ((sql_update_default(c, m)) != NULL) {
+ fprintf(stderr, "!%s\n", err);
+ GDKfree(err);
+ }
+ }
}
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
@@ -24,6 +24,44 @@ stdout of test 'upgrade` in directory 's
# MonetDB/R module loaded
Ready.
+Running database upgrade commands:
+set schema "sys";
+delete from sys._columns where table_id = (select id from sys._tables where
name = 'connections' and schema_id = (select id from sys.schemas where name =
'sys'));
+delete from sys._tables where name = 'connections' and schema_id = (select id
from sys.schemas where name = 'sys');
+create function profiler.getlimit() returns integer external name
profiler.getlimit;
+create procedure profiler.setlimit(lim integer) external name
profiler.setlimit;
+insert into sys.systemfunctions (select id from sys.functions where name in
('getlimit', 'setlimit') and schema_id = (select id from sys.schemas where name
= 'profiler') and id not in (select function_id from sys.systemfunctions));
+CREATE TABLE sys.function_types (
+function_type_id SMALLINT NOT NULL PRIMARY KEY,
+function_type_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.function_types (function_type_id, function_type_name) VALUES
+(1, 'Scalar function'), (2, 'Procedure'), (3, 'Aggregate function'), (4,
'Filter function'), (5, 'Function returning a table'),
+(6, 'Analytic function'), (7, 'Loader function');
+CREATE TABLE sys.function_languages (
+language_id SMALLINT NOT NULL PRIMARY KEY,
+language_name VARCHAR(20) NOT NULL UNIQUE);
+INSERT INTO sys.function_languages (language_id, language_name) VALUES
+(0, 'Internal C'), (1, 'MAL'), (2, 'SQL'), (3, 'R'), (4, 'C'), (5, 'Java'),
(6, 'Python'), (7, 'Python Mapped');
+CREATE TABLE sys.key_types (
+key_type_id SMALLINT NOT NULL PRIMARY KEY,
+key_type_name VARCHAR(15) NOT NULL UNIQUE);
+INSERT INTO sys.key_types (key_type_id, key_type_name) VALUES
+(0, 'Primary Key'), (1, 'Unique Key'), (2, 'Foreign Key');
+CREATE TABLE sys.index_types (
+index_type_id SMALLINT NOT NULL PRIMARY KEY,
+index_type_name VARCHAR(25) NOT NULL UNIQUE);
+INSERT INTO sys.index_types (index_type_id, index_type_name) VALUES
+(0, 'Hash'), (1, 'Join'), (2, 'Order preserving hash'), (3, 'No-index'), (4,
'Imprint'), (5, 'Ordered');
+CREATE TABLE sys.privilege_codes (
+privilege_code_id INT NOT NULL PRIMARY KEY,
+privilege_code_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.privilege_codes (privilege_code_id, privilege_code_name) VALUES
+(1, 'SELECT'), (2, 'UPDATE'), (4, 'INSERT'), (8, 'DELETE'), (16, 'EXECUTE'),
(32, 'GRANT'),
+(3, 'SELECT,UPDATE'), (5, 'SELECT,INSERT'), (6, 'INSERT,UPDATE'), (7,
'SELECT,INSERT,UPDATE'),
+(9, 'SELECT,DELETE'), (10, 'UPDATE,DELETE'), (11, 'SELECT,UPDATE,DELETE'),
(12, 'INSERT,DELETE'),
+(13, 'SELECT,INSERT,DELETE'), (14, 'INSERT,UPDATE,DELETE'), (15,
'SELECT,INSERT,UPDATE,DELETE');
+update sys._tables set system = true where name in ('function_languages',
'function_types', 'index_types', 'key_types', 'privilege_codes') and schema_id
= (select id from sys.schemas where name = 'sys');
+set schema "sys";
# 15:26:18 >
# 15:26:18 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-21187" "--port=38946"
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
@@ -24,6 +24,44 @@ stdout of test 'upgrade` in directory 's
# MonetDB/R module loaded
Ready.
+Running database upgrade commands:
+set schema "sys";
+delete from sys._columns where table_id = (select id from sys._tables where
name = 'connections' and schema_id = (select id from sys.schemas where name =
'sys'));
+delete from sys._tables where name = 'connections' and schema_id = (select id
from sys.schemas where name = 'sys');
+create function profiler.getlimit() returns integer external name
profiler.getlimit;
+create procedure profiler.setlimit(lim integer) external name
profiler.setlimit;
+insert into sys.systemfunctions (select id from sys.functions where name in
('getlimit', 'setlimit') and schema_id = (select id from sys.schemas where name
= 'profiler') and id not in (select function_id from sys.systemfunctions));
+CREATE TABLE sys.function_types (
+function_type_id SMALLINT NOT NULL PRIMARY KEY,
+function_type_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.function_types (function_type_id, function_type_name) VALUES
+(1, 'Scalar function'), (2, 'Procedure'), (3, 'Aggregate function'), (4,
'Filter function'), (5, 'Function returning a table'),
+(6, 'Analytic function'), (7, 'Loader function');
+CREATE TABLE sys.function_languages (
+language_id SMALLINT NOT NULL PRIMARY KEY,
+language_name VARCHAR(20) NOT NULL UNIQUE);
+INSERT INTO sys.function_languages (language_id, language_name) VALUES
+(0, 'Internal C'), (1, 'MAL'), (2, 'SQL'), (3, 'R'), (4, 'C'), (5, 'Java'),
(6, 'Python'), (7, 'Python Mapped');
+CREATE TABLE sys.key_types (
+key_type_id SMALLINT NOT NULL PRIMARY KEY,
+key_type_name VARCHAR(15) NOT NULL UNIQUE);
+INSERT INTO sys.key_types (key_type_id, key_type_name) VALUES
+(0, 'Primary Key'), (1, 'Unique Key'), (2, 'Foreign Key');
+CREATE TABLE sys.index_types (
+index_type_id SMALLINT NOT NULL PRIMARY KEY,
+index_type_name VARCHAR(25) NOT NULL UNIQUE);
+INSERT INTO sys.index_types (index_type_id, index_type_name) VALUES
+(0, 'Hash'), (1, 'Join'), (2, 'Order preserving hash'), (3, 'No-index'), (4,
'Imprint'), (5, 'Ordered');
+CREATE TABLE sys.privilege_codes (
+privilege_code_id INT NOT NULL PRIMARY KEY,
+privilege_code_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.privilege_codes (privilege_code_id, privilege_code_name) VALUES
+(1, 'SELECT'), (2, 'UPDATE'), (4, 'INSERT'), (8, 'DELETE'), (16, 'EXECUTE'),
(32, 'GRANT'),
+(3, 'SELECT,UPDATE'), (5, 'SELECT,INSERT'), (6, 'INSERT,UPDATE'), (7,
'SELECT,INSERT,UPDATE'),
+(9, 'SELECT,DELETE'), (10, 'UPDATE,DELETE'), (11, 'SELECT,UPDATE,DELETE'),
(12, 'INSERT,DELETE'),
+(13, 'SELECT,INSERT,DELETE'), (14, 'INSERT,UPDATE,DELETE'), (15,
'SELECT,INSERT,UPDATE,DELETE');
+update sys._tables set system = true where name in ('function_languages',
'function_types', 'index_types', 'key_types', 'privilege_codes') and schema_id
= (select id from sys.schemas where name = 'sys');
+set schema "sys";
# 15:41:19 >
# 15:41:19 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-7576" "--port=32696"
diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
@@ -68,6 +68,45 @@ insert into sys.types values (13, 'hge',
insert into sys.types values (18, 'hge', 'decimal', 38, 1, 10, 10, 0);
set schema "sys";
+Running database upgrade commands:
+set schema "sys";
+delete from sys._columns where table_id = (select id from sys._tables where
name = 'connections' and schema_id = (select id from sys.schemas where name =
'sys'));
+delete from sys._tables where name = 'connections' and schema_id = (select id
from sys.schemas where name = 'sys');
+create function profiler.getlimit() returns integer external name
profiler.getlimit;
+create procedure profiler.setlimit(lim integer) external name
profiler.setlimit;
+insert into sys.systemfunctions (select id from sys.functions where name in
('getlimit', 'setlimit') and schema_id = (select id from sys.schemas where name
= 'profiler') and id not in (select function_id from sys.systemfunctions));
+CREATE TABLE sys.function_types (
+function_type_id SMALLINT NOT NULL PRIMARY KEY,
+function_type_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.function_types (function_type_id, function_type_name) VALUES
+(1, 'Scalar function'), (2, 'Procedure'), (3, 'Aggregate function'), (4,
'Filter function'), (5, 'Function returning a table'),
+(6, 'Analytic function'), (7, 'Loader function');
+CREATE TABLE sys.function_languages (
+language_id SMALLINT NOT NULL PRIMARY KEY,
+language_name VARCHAR(20) NOT NULL UNIQUE);
+INSERT INTO sys.function_languages (language_id, language_name) VALUES
+(0, 'Internal C'), (1, 'MAL'), (2, 'SQL'), (3, 'R'), (4, 'C'), (5, 'Java'),
(6, 'Python'), (7, 'Python Mapped');
+CREATE TABLE sys.key_types (
+key_type_id SMALLINT NOT NULL PRIMARY KEY,
+key_type_name VARCHAR(15) NOT NULL UNIQUE);
+INSERT INTO sys.key_types (key_type_id, key_type_name) VALUES
+(0, 'Primary Key'), (1, 'Unique Key'), (2, 'Foreign Key');
+CREATE TABLE sys.index_types (
+index_type_id SMALLINT NOT NULL PRIMARY KEY,
+index_type_name VARCHAR(25) NOT NULL UNIQUE);
+INSERT INTO sys.index_types (index_type_id, index_type_name) VALUES
+(0, 'Hash'), (1, 'Join'), (2, 'Order preserving hash'), (3, 'No-index'), (4,
'Imprint'), (5, 'Ordered');
+CREATE TABLE sys.privilege_codes (
+privilege_code_id INT NOT NULL PRIMARY KEY,
+privilege_code_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.privilege_codes (privilege_code_id, privilege_code_name) VALUES
+(1, 'SELECT'), (2, 'UPDATE'), (4, 'INSERT'), (8, 'DELETE'), (16, 'EXECUTE'),
(32, 'GRANT'),
+(3, 'SELECT,UPDATE'), (5, 'SELECT,INSERT'), (6, 'INSERT,UPDATE'), (7,
'SELECT,INSERT,UPDATE'),
+(9, 'SELECT,DELETE'), (10, 'UPDATE,DELETE'), (11, 'SELECT,UPDATE,DELETE'),
(12, 'INSERT,DELETE'),
+(13, 'SELECT,INSERT,DELETE'), (14, 'INSERT,UPDATE,DELETE'), (15,
'SELECT,INSERT,UPDATE,DELETE');
+update sys._tables set system = true where name in ('function_languages',
'function_types', 'index_types', 'key_types', 'privilege_codes') and schema_id
= (select id from sys.schemas where name = 'sys');
+set schema "sys";
+
# 16:53:35 >
# 16:53:35 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-30908" "--port=39660"
diff --git a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
@@ -24,6 +24,44 @@ stdout of test 'upgrade` in directory 's
# MonetDB/R module loaded
Ready.
+Running database upgrade commands:
+set schema "sys";
+delete from sys._columns where table_id = (select id from sys._tables where
name = 'connections' and schema_id = (select id from sys.schemas where name =
'sys'));
+delete from sys._tables where name = 'connections' and schema_id = (select id
from sys.schemas where name = 'sys');
+create function profiler.getlimit() returns integer external name
profiler.getlimit;
+create procedure profiler.setlimit(lim integer) external name
profiler.setlimit;
+insert into sys.systemfunctions (select id from sys.functions where name in
('getlimit', 'setlimit') and schema_id = (select id from sys.schemas where name
= 'profiler') and id not in (select function_id from sys.systemfunctions));
+CREATE TABLE sys.function_types (
+function_type_id SMALLINT NOT NULL PRIMARY KEY,
+function_type_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.function_types (function_type_id, function_type_name) VALUES
+(1, 'Scalar function'), (2, 'Procedure'), (3, 'Aggregate function'), (4,
'Filter function'), (5, 'Function returning a table'),
+(6, 'Analytic function'), (7, 'Loader function');
+CREATE TABLE sys.function_languages (
+language_id SMALLINT NOT NULL PRIMARY KEY,
+language_name VARCHAR(20) NOT NULL UNIQUE);
+INSERT INTO sys.function_languages (language_id, language_name) VALUES
+(0, 'Internal C'), (1, 'MAL'), (2, 'SQL'), (3, 'R'), (4, 'C'), (5, 'Java'),
(6, 'Python'), (7, 'Python Mapped');
+CREATE TABLE sys.key_types (
+key_type_id SMALLINT NOT NULL PRIMARY KEY,
+key_type_name VARCHAR(15) NOT NULL UNIQUE);
+INSERT INTO sys.key_types (key_type_id, key_type_name) VALUES
+(0, 'Primary Key'), (1, 'Unique Key'), (2, 'Foreign Key');
+CREATE TABLE sys.index_types (
+index_type_id SMALLINT NOT NULL PRIMARY KEY,
+index_type_name VARCHAR(25) NOT NULL UNIQUE);
+INSERT INTO sys.index_types (index_type_id, index_type_name) VALUES
+(0, 'Hash'), (1, 'Join'), (2, 'Order preserving hash'), (3, 'No-index'), (4,
'Imprint'), (5, 'Ordered');
+CREATE TABLE sys.privilege_codes (
+privilege_code_id INT NOT NULL PRIMARY KEY,
+privilege_code_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.privilege_codes (privilege_code_id, privilege_code_name) VALUES
+(1, 'SELECT'), (2, 'UPDATE'), (4, 'INSERT'), (8, 'DELETE'), (16, 'EXECUTE'),
(32, 'GRANT'),
+(3, 'SELECT,UPDATE'), (5, 'SELECT,INSERT'), (6, 'INSERT,UPDATE'), (7,
'SELECT,INSERT,UPDATE'),
+(9, 'SELECT,DELETE'), (10, 'UPDATE,DELETE'), (11, 'SELECT,UPDATE,DELETE'),
(12, 'INSERT,DELETE'),
+(13, 'SELECT,INSERT,DELETE'), (14, 'INSERT,UPDATE,DELETE'), (15,
'SELECT,INSERT,UPDATE,DELETE');
+update sys._tables set system = true where name in ('function_languages',
'function_types', 'index_types', 'key_types', 'privilege_codes') and schema_id
= (select id from sys.schemas where name = 'sys');
+set schema "sys";
# 15:26:18 >
# 15:26:18 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-21187" "--port=38946"
diff --git a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade/Tests/upgrade.stable.out
@@ -24,6 +24,44 @@ stdout of test 'upgrade` in directory 's
# MonetDB/R module loaded
Ready.
+Running database upgrade commands:
+set schema "sys";
+delete from sys._columns where table_id = (select id from sys._tables where
name = 'connections' and schema_id = (select id from sys.schemas where name =
'sys'));
+delete from sys._tables where name = 'connections' and schema_id = (select id
from sys.schemas where name = 'sys');
+create function profiler.getlimit() returns integer external name
profiler.getlimit;
+create procedure profiler.setlimit(lim integer) external name
profiler.setlimit;
+insert into sys.systemfunctions (select id from sys.functions where name in
('getlimit', 'setlimit') and schema_id = (select id from sys.schemas where name
= 'profiler') and id not in (select function_id from sys.systemfunctions));
+CREATE TABLE sys.function_types (
+function_type_id SMALLINT NOT NULL PRIMARY KEY,
+function_type_name VARCHAR(30) NOT NULL UNIQUE);
+INSERT INTO sys.function_types (function_type_id, function_type_name) VALUES
+(1, 'Scalar function'), (2, 'Procedure'), (3, 'Aggregate function'), (4,
'Filter function'), (5, 'Function returning a table'),
+(6, 'Analytic function'), (7, 'Loader function');
+CREATE TABLE sys.function_languages (
+language_id SMALLINT NOT NULL PRIMARY KEY,
+language_name VARCHAR(20) NOT NULL UNIQUE);
+INSERT INTO sys.function_languages (language_id, language_name) VALUES
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list