Changeset: acb735858eab for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=acb735858eab
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64
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.32bit
sql/test/emptydb-upgrade/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.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Mar2018
Log Message:
Upgrade netcdf and bam: add grants and fix some procedures.
diffs (truncated from 809 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
@@ -973,6 +973,8 @@ sql_update_mar2018(Client c, mvc *sql)
buf = GDKmalloc(bufsize);
if (buf== NULL)
throw(SQL, "sql_update_mar2018", SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+ s = mvc_bind_schema(sql, "sys");
+
pos += snprintf(buf + pos, bufsize - pos, "set schema \"sys\";\n");
/* 21_dependency_views.sql */
@@ -1253,7 +1255,6 @@ sql_update_mar2018(Client c, mvc *sql)
);
/* 25_debug.sql */
- s = mvc_bind_schema(sql, "sys");
t = mvc_bind_table(sql, s, "environment");
t->system = 0;
pos += snprintf(buf + pos, bufsize - pos,
@@ -1296,7 +1297,6 @@ sql_update_mar2018(Client c, mvc *sql)
"insert into sys.systemfunctions (select id from
sys.functions where name = 'corr' and schema_id = (select id from sys.schemas
where name = 'sys') and id not in (select function_id from
sys.systemfunctions));\n");
/* 51_sys_schema_extensions.sql */
- s = mvc_bind_schema(sql, "sys");
t = mvc_bind_table(sql, s, "privilege_codes");
t->system = 0;
pos += snprintf(buf + pos, bufsize - pos,
@@ -1524,6 +1524,121 @@ sql_update_mar2018(Client c, mvc *sql)
return err; /* usually MAL_SUCCEED */
}
+#ifdef HAVE_NETCDF
+static str
+sql_update_mar2018_netcdf(Client c, mvc *sql)
+{
+ size_t bufsize = 1000, pos = 0;
+ char *buf, *err;
+ char *schema;
+
+ schema = stack_get_string(sql, "current_schema");
+ buf = GDKmalloc(bufsize);
+ if (buf== NULL)
+ throw(SQL, "sql_update_mar2018_netcdf", SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+
+ pos += snprintf(buf + pos, bufsize - pos, "set schema sys;\n");
+
+ /* 74_netcdf.sql */
+ pos += snprintf(buf + pos, bufsize - pos,
+ "grant select on sys.netcdf_files to public;\n"
+ "grant select on sys.netcdf_dims to public;\n"
+ "grant select on sys.netcdf_vars to public;\n"
+ "grant select on sys.netcdf_vardim to public;\n"
+ "grant select on sys.netcdf_attrs to public;\n"
+ "grant execute on procedure
sys.netcdf_attach(varchar(256)) to public;\n"
+ "grant execute on procedure
sys.netcdf_importvar(integer, varchar(256)) to public;\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 */
+}
+#endif /* HAVE_NETCDF */
+
+#ifdef HAVE_SAMTOOLS
+static str
+sql_update_mar2018_samtools(Client c, mvc *sql)
+{
+ size_t bufsize = 2000, pos = 0;
+ char *buf, *err;
+ char *schema;
+ sql_schema *s = mvc_bind_schema(sql, "bam");
+
+ if (s == NULL)
+ return MAL_SUCCEED;
+
+ schema = stack_get_string(sql, "current_schema");
+ buf = GDKmalloc(bufsize);
+ if (buf== NULL)
+ throw(SQL, "sql_update_mar2018_samtools", SQLSTATE(HY001)
MAL_MALLOC_FAIL);
+
+ pos += snprintf(buf + pos, bufsize - pos, "set schema sys;\n");
+
+ /* 85_bam.sql */
+ list *l = sa_list(sql->sa);
+ sql_subtype tpi, tps;
+ sql_find_subtype(&tpi, "int", 0, 0);
+ sql_find_subtype(&tps, "clob", 0, 0);
+ list_append(l, &tpi);
+ list_append(l, &tps);
+ list_append(l, &tpi);
+ list_append(l, &tps);
+ if (sql_bind_func_(sql->sa, s, "seq_char", l, F_FUNC) == NULL) {
+ pos += snprintf(buf + pos, bufsize - pos,
+ "CREATE FUNCTION bam.seq_char(ref_pos INT,
alg_seq STRING, alg_pos INT, alg_cigar STRING)\n"
+ "RETURNS CHAR(1) EXTERNAL NAME bam.seq_char;\n"
+ "insert into sys.systemfunctions (select id from
sys.functions where name in ('seq_char') and schema_id = (select id from
sys.schemas where name = 'bam') and id not in (select function_id from
sys.systemfunctions));\n");
+ }
+ sql_find_subtype(&tpi, "smallint", 0, 0);
+ if (sql_bind_func3(sql->sa, s, "bam_loader_repos", &tps, &tpi, &tpi,
F_PROC) != NULL) {
+ pos += snprintf(buf + pos, bufsize - pos,
+ "drop procedure bam.bam_loader_repos(string,
smallint, smallint);\n"
+ "drop procedure bam.bam_loader_files(string,
smallint, smallint);\n"
+ "delete from systemfunctions where function_id
not in (select id from functions);\n");
+ }
+ if (sql_bind_func(sql->sa, s, "bam_loader_repos", &tps, &tpi, F_PROC)
== NULL) {
+ pos += snprintf(buf + pos, bufsize - pos,
+ "CREATE PROCEDURE
bam.bam_loader_repos(bam_repos STRING, dbschema SMALLINT)\n"
+ "EXTERNAL NAME bam.bam_loader_repos;\n"
+ "CREATE PROCEDURE
bam.bam_loader_files(bam_files STRING, dbschema SMALLINT)\n"
+ "EXTERNAL NAME bam.bam_loader_files;\n"
+ "insert into sys.systemfunctions (select id from
sys.functions where name in ('bam_loader_repos', 'bam_loader_files') and
schema_id = (select id from sys.schemas where name = 'bam') and id not in
(select function_id from sys.systemfunctions));\n");
+ }
+
+ pos += snprintf(buf + pos, bufsize - pos,
+ "GRANT SELECT ON bam.files TO PUBLIC;\n"
+ "GRANT SELECT ON bam.sq TO PUBLIC;\n"
+ "GRANT SELECT ON bam.rg TO PUBLIC;\n"
+ "GRANT SELECT ON bam.pg TO PUBLIC;\n"
+ "GRANT SELECT ON bam.export TO PUBLIC;\n"
+ "GRANT EXECUTE ON FUNCTION bam.bam_flag(SMALLINT,
STRING) TO PUBLIC;\n"
+ "GRANT EXECUTE ON FUNCTION bam.reverse_seq(STRING) TO
PUBLIC;\n"
+ "GRANT EXECUTE ON FUNCTION bam.reverse_qual(STRING) TO
PUBLIC;\n"
+ "GRANT EXECUTE ON FUNCTION bam.seq_length(STRING) TO
PUBLIC;\n"
+ "GRANT EXECUTE ON FUNCTION bam.seq_char(INT, STRING,
INT, STRING) TO PUBLIC;\n"
+ "GRANT EXECUTE ON PROCEDURE
bam.bam_loader_repos(STRING, SMALLINT) TO PUBLIC;\n"
+ "GRANT EXECUTE ON PROCEDURE
bam.bam_loader_files(STRING, SMALLINT) TO PUBLIC;\n"
+ "GRANT EXECUTE ON PROCEDURE bam.bam_loader_file(STRING,
SMALLINT) TO PUBLIC;\n"
+ "GRANT EXECUTE ON PROCEDURE bam.bam_drop_file(BIGINT,
SMALLINT) TO PUBLIC;\n"
+ "GRANT EXECUTE ON PROCEDURE bam.sam_export(STRING) TO
PUBLIC;\n"
+ "GRANT EXECUTE ON PROCEDURE bam.bam_export(STRING) TO
PUBLIC;\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 */
+}
+#endif /* HAVE_SAMTOOLS */
+
void
SQLupgrades(Client c, mvc *m)
{
@@ -1638,5 +1753,18 @@ SQLupgrades(Client c, mvc *m)
fprintf(stderr, "!%s\n", err);
freeException(err);
}
+#ifdef HAVE_NETCDF
+ if (mvc_bind_table(m, s, "netcdf_files") != NULL &&
+ (err = sql_update_mar2018_netcdf(c, m)) != NULL) {
+ fprintf(stderr, "!%s\n", err);
+ freeException(err);
+ }
+#endif
+#ifdef HAVE_SAMTOOLS
+ if ((err = sql_update_mar2018_samtools(c, m)) != NULL) {
+ fprintf(stderr, "!%s\n", err);
+ freeException(err);
+ }
+#endif
}
}
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
@@ -5826,6 +5826,48 @@ INSERT INTO sys.keywords VALUES ('COMMEN
delete from sys.systemfunctions where function_id not in (select id from
sys.functions);
set schema "sys";
+Running database upgrade commands:
+set schema sys;
+grant select on sys.netcdf_files to public;
+grant select on sys.netcdf_dims to public;
+grant select on sys.netcdf_vars to public;
+grant select on sys.netcdf_vardim to public;
+grant select on sys.netcdf_attrs to public;
+grant execute on procedure sys.netcdf_attach(varchar(256)) to public;
+grant execute on procedure sys.netcdf_importvar(integer, varchar(256)) to
public;
+set schema "sys";
+
+Running database upgrade commands:
+set schema sys;
+CREATE FUNCTION bam.seq_char(ref_pos INT, alg_seq STRING, alg_pos INT,
alg_cigar STRING)
+RETURNS CHAR(1) EXTERNAL NAME bam.seq_char;
+insert into sys.systemfunctions (select id from sys.functions where name in
('seq_char') and schema_id = (select id from sys.schemas where name = 'bam')
and id not in (select function_id from sys.systemfunctions));
+drop procedure bam.bam_loader_repos(string, smallint, smallint);
+drop procedure bam.bam_loader_files(string, smallint, smallint);
+delete from systemfunctions where function_id not in (select id from
functions);
+CREATE PROCEDURE bam.bam_loader_repos(bam_repos STRING, dbschema SMALLINT)
+EXTERNAL NAME bam.bam_loader_repos;
+CREATE PROCEDURE bam.bam_loader_files(bam_files STRING, dbschema SMALLINT)
+EXTERNAL NAME bam.bam_loader_files;
+insert into sys.systemfunctions (select id from sys.functions where name in
('bam_loader_repos', 'bam_loader_files') and schema_id = (select id from
sys.schemas where name = 'bam') and id not in (select function_id from
sys.systemfunctions));
+GRANT SELECT ON bam.files TO PUBLIC;
+GRANT SELECT ON bam.sq TO PUBLIC;
+GRANT SELECT ON bam.rg TO PUBLIC;
+GRANT SELECT ON bam.pg TO PUBLIC;
+GRANT SELECT ON bam.export TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.bam_flag(SMALLINT, STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.reverse_seq(STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.reverse_qual(STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.seq_length(STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.seq_char(INT, STRING, INT, STRING) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_loader_repos(STRING, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_loader_files(STRING, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_loader_file(STRING, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_drop_file(BIGINT, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.sam_export(STRING) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_export(STRING) TO PUBLIC;
+set schema "sys";
+
# 13:50:24 >
# 13:50:24 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-7858" "--port=33066"
diff --git
a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64
@@ -5821,6 +5821,48 @@ INSERT INTO sys.keywords VALUES ('COMMEN
delete from sys.systemfunctions where function_id not in (select id from
sys.functions);
set schema "sys";
+Running database upgrade commands:
+set schema sys;
+grant select on sys.netcdf_files to public;
+grant select on sys.netcdf_dims to public;
+grant select on sys.netcdf_vars to public;
+grant select on sys.netcdf_vardim to public;
+grant select on sys.netcdf_attrs to public;
+grant execute on procedure sys.netcdf_attach(varchar(256)) to public;
+grant execute on procedure sys.netcdf_importvar(integer, varchar(256)) to
public;
+set schema "sys";
+
+Running database upgrade commands:
+set schema sys;
+CREATE FUNCTION bam.seq_char(ref_pos INT, alg_seq STRING, alg_pos INT,
alg_cigar STRING)
+RETURNS CHAR(1) EXTERNAL NAME bam.seq_char;
+insert into sys.systemfunctions (select id from sys.functions where name in
('seq_char') and schema_id = (select id from sys.schemas where name = 'bam')
and id not in (select function_id from sys.systemfunctions));
+drop procedure bam.bam_loader_repos(string, smallint, smallint);
+drop procedure bam.bam_loader_files(string, smallint, smallint);
+delete from systemfunctions where function_id not in (select id from
functions);
+CREATE PROCEDURE bam.bam_loader_repos(bam_repos STRING, dbschema SMALLINT)
+EXTERNAL NAME bam.bam_loader_repos;
+CREATE PROCEDURE bam.bam_loader_files(bam_files STRING, dbschema SMALLINT)
+EXTERNAL NAME bam.bam_loader_files;
+insert into sys.systemfunctions (select id from sys.functions where name in
('bam_loader_repos', 'bam_loader_files') and schema_id = (select id from
sys.schemas where name = 'bam') and id not in (select function_id from
sys.systemfunctions));
+GRANT SELECT ON bam.files TO PUBLIC;
+GRANT SELECT ON bam.sq TO PUBLIC;
+GRANT SELECT ON bam.rg TO PUBLIC;
+GRANT SELECT ON bam.pg TO PUBLIC;
+GRANT SELECT ON bam.export TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.bam_flag(SMALLINT, STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.reverse_seq(STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.reverse_qual(STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.seq_length(STRING) TO PUBLIC;
+GRANT EXECUTE ON FUNCTION bam.seq_char(INT, STRING, INT, STRING) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_loader_repos(STRING, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_loader_files(STRING, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_loader_file(STRING, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_drop_file(BIGINT, SMALLINT) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.sam_export(STRING) TO PUBLIC;
+GRANT EXECUTE ON PROCEDURE bam.bam_export(STRING) TO PUBLIC;
+set schema "sys";
+
# 15:46:26 >
# 15:46:26 > "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-7779" "--port=36716"
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
@@ -5113,6 +5113,48 @@ INSERT INTO sys.keywords VALUES ('COMMEN
delete from sys.systemfunctions where function_id not in (select id from
sys.functions);
set schema "sys";
+Running database upgrade commands:
+set schema sys;
+grant select on sys.netcdf_files to public;
+grant select on sys.netcdf_dims to public;
+grant select on sys.netcdf_vars to public;
+grant select on sys.netcdf_vardim to public;
+grant select on sys.netcdf_attrs to public;
+grant execute on procedure sys.netcdf_attach(varchar(256)) to public;
+grant execute on procedure sys.netcdf_importvar(integer, varchar(256)) to
public;
+set schema "sys";
+
+Running database upgrade commands:
+set schema sys;
+CREATE FUNCTION bam.seq_char(ref_pos INT, alg_seq STRING, alg_pos INT,
alg_cigar STRING)
+RETURNS CHAR(1) EXTERNAL NAME bam.seq_char;
+insert into sys.systemfunctions (select id from sys.functions where name in
('seq_char') and schema_id = (select id from sys.schemas where name = 'bam')
and id not in (select function_id from sys.systemfunctions));
+drop procedure bam.bam_loader_repos(string, smallint, smallint);
+drop procedure bam.bam_loader_files(string, smallint, smallint);
+delete from systemfunctions where function_id not in (select id from
functions);
+CREATE PROCEDURE bam.bam_loader_repos(bam_repos STRING, dbschema SMALLINT)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list