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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list