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

Reply via email to