Changeset: 424ca8cc0aa9 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/424ca8cc0aa9 Branch: default Log Message:
Merge with Jan2022 branch. diffs (268 lines): diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c --- a/clients/mapiclient/dump.c +++ b/clients/mapiclient/dump.c @@ -1692,9 +1692,9 @@ dump_table_data(Mapi mid, const char *sc goto bailout; if (mapi_rows_affected(hdl) != 1) { if (mapi_rows_affected(hdl) == 0) - fprintf(stderr, "table '%s.%s' does not exist\n", schema, tname); + fprintf(stderr, "table %s.%s does not exist\n", schema, tname); else - fprintf(stderr, "table '%s.%s' is not unique\n", schema, tname); + fprintf(stderr, "table %s.%s is not unique\n", schema, tname); goto bailout; } while ((mapi_fetch_row(hdl)) != 0) { @@ -1862,6 +1862,93 @@ bailout: return 1; } +static int +dump_table_alters(Mapi mid, const char *schema, const char *tname, stream *toConsole) +{ + char *sname = NULL; + char *query = NULL; + size_t maxquerylen; + MapiHdl hdl = NULL; + char *s = NULL; + char *t = NULL; + int rc = 1; + + if (schema == NULL) { + if ((sname = strchr(tname, '.')) != NULL) { + size_t len = sname - tname + 1; + + sname = malloc(len); + if (sname == NULL) + goto bailout; + strcpy_len(sname, tname, len); + tname += len; + } else if ((sname = get_schema(mid)) == NULL) { + goto bailout; + } + schema = sname; + } + + maxquerylen = 5120 + 2*strlen(tname) + 2*strlen(schema); + query = malloc(maxquerylen); + s = sescape(schema); + t = sescape(tname); + if (query == NULL || s == NULL || t == NULL) + goto bailout; + + snprintf(query, maxquerylen, + "SELECT t.access FROM sys._tables t, sys.schemas s " + "WHERE s.name = '%s' AND t.schema_id = s.id AND t.name = '%s'", + s, t); + if ((hdl = mapi_query(mid, query)) == NULL || mapi_error(mid)) + goto bailout; + if (mapi_rows_affected(hdl) != 1) { + if (mapi_rows_affected(hdl) == 0) + fprintf(stderr, "table %s.%s does not exist\n", schema, tname); + else + fprintf(stderr, "table %s.%s is not unique\n", schema, tname); + goto bailout; + } + while ((mapi_fetch_row(hdl)) != 0) { + const char *access = mapi_fetch_field(hdl, 0); + if (access && (*access == '1' || *access == '2')) { + mnstr_printf(toConsole, "ALTER TABLE "); + dquoted_print(toConsole, schema, "."); + dquoted_print(toConsole, tname, " "); + mnstr_printf(toConsole, "SET %s ONLY;\n", *access == '1' ? "READ" : "INSERT"); + } + } + mapi_close_handle(hdl); + snprintf(query, maxquerylen, + "SELECT name, storage FROM sys._columns " + "WHERE storage IS NOT NULL " + "AND table_id = (SELECT id FROM sys._tables WHERE name = '%s' " + "AND schema_id = (SELECT id FROM sys.schemas WHERE name = '%s'))", + t, s); + if ((hdl = mapi_query(mid, query)) == NULL || mapi_error(mid)) + goto bailout; + while ((mapi_fetch_row(hdl)) != 0) { + const char *cname = mapi_fetch_field(hdl, 0); + const char *storage = mapi_fetch_field(hdl, 1); + char *stg = sescape(storage); + if (stg == NULL) + goto bailout; + mnstr_printf(toConsole, "ALTER TABLE "); + dquoted_print(toConsole, schema, "."); + dquoted_print(toConsole, tname, " "); + mnstr_printf(toConsole, "ALTER COLUMN "); + dquoted_print(toConsole, cname, " "); + mnstr_printf(toConsole, "SET STORAGE '%s';\n", stg); + free(stg); + } + rc = 0; /* success */ + bailout: + free(s); + free(t); + mapi_close_handle(hdl); /* may be NULL */ + free(sname); /* may be NULL */ + return rc; +} + int dump_table(Mapi mid, const char *schema, const char *tname, stream *toConsole, bool describe, bool foreign, bool useInserts, bool databaseDump, @@ -1872,6 +1959,8 @@ dump_table(Mapi mid, const char *schema, rc = describe_table(mid, schema, tname, toConsole, foreign, databaseDump); if (rc == 0 && !describe) rc = dump_table_data(mid, schema, tname, toConsole, useInserts, noescape); + if (rc == 0) + rc = dump_table_alters(mid, schema, tname, toConsole); return rc; } diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -2515,7 +2515,7 @@ doFile(Mapi mid, stream *fp, bool useins start_pager(&saveFD); #endif if (x & MD_TABLE || x & MD_VIEW) - describe_table(mid, NULL, line, toConsole, 1, false); + dump_table(mid, NULL, line, toConsole, true, true, false, false, false); if (x & MD_SEQ) describe_sequence(mid, NULL, line, toConsole); if (x & MD_FUNC) diff --git a/sql/test/Tests/comment-on.SQL.py b/sql/test/Tests/comment-on.SQL.py --- a/sql/test/Tests/comment-on.SQL.py +++ b/sql/test/Tests/comment-on.SQL.py @@ -98,7 +98,7 @@ COMMENT ON COLUMN "foo"."tab"."j" IS 'jj SEQUENCE foo.counter #COMMENT ON SEQUENCE counter IS 'counting'; SEQUENCE foo.counter 'counting' -CREATE SEQUENCE "foo"."counter" START WITH 1 MAXVALUE 9223372036854775807 NO CYCLE; +CREATE SEQUENCE "foo"."counter" START WITH 1 NO CYCLE; COMMENT ON SEQUENCE "foo"."counter" IS 'counting'; #SET SCHEMA sys; #COMMENT ON SEQUENCE foo.counter IS 'still counting'; diff --git a/sql/test/emptydb/Tests/check.stable.out b/sql/test/emptydb/Tests/check.stable.out --- a/sql/test/emptydb/Tests/check.stable.out +++ b/sql/test/emptydb/Tests/check.stable.out @@ -972,16 +972,22 @@ CREATE TABLE "sys"."comments" ("id" INTE CREATE TABLE "sys"."db_user_info" ("name" VARCHAR(1024), "fullname" VARCHAR(2048), "default_schema" INTEGER, "schema_path" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."dependencies" ("id" INTEGER, "depend_id" INTEGER, "depend_type" SMALLINT); CREATE TABLE "sys"."dependency_types" ("dependency_type_id" SMALLINT NOT NULL, "dependency_type_name" VARCHAR(15) NOT NULL, CONSTRAINT "dependency_types_dependency_type_id_pkey" PRIMARY KEY ("dependency_type_id"), CONSTRAINT "dependency_types_dependency_type_name_unique" UNIQUE ("dependency_type_name")); +ALTER TABLE "sys"."dependency_types" SET READ ONLY; CREATE TABLE "sys"."dump_statements" ("o" INTEGER, "s" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."fkey_actions" ("action_id" SMALLINT NOT NULL, "action_name" VARCHAR(15) NOT NULL, CONSTRAINT "fkey_actions_action_id_pkey" PRIMARY KEY ("action_id")); CREATE TABLE "sys"."function_languages" ("language_id" SMALLINT NOT NULL, "language_name" VARCHAR(20) NOT NULL, "language_keyword" VARCHAR(20), CONSTRAINT "function_languages_language_id_pkey" PRIMARY KEY ("language_id"), CONSTRAINT "function_languages_language_name_unique" UNIQUE ("language_name")); +ALTER TABLE "sys"."function_languages" SET READ ONLY; CREATE TABLE "sys"."function_types" ("function_type_id" SMALLINT NOT NULL, "function_type_name" VARCHAR(30) NOT NULL, "function_type_keyword" VARCHAR(30) NOT NULL, CONSTRAINT "function_types_function_type_id_pkey" PRIMARY KEY ("function_type_id"), CONSTRAINT "function_types_function_type_name_unique" UNIQUE ("function_type_name")); +ALTER TABLE "sys"."function_types" SET READ ONLY; CREATE TABLE "sys"."functions" ("id" INTEGER, "name" VARCHAR(256), "func" VARCHAR(8196), "mod" VARCHAR(8196), "language" INTEGER, "type" INTEGER, "side_effect" BOOLEAN, "varres" BOOLEAN, "vararg" BOOLEAN, "schema_id" INTEGER, "system" BOOLEAN, "semantics" BOOLEAN); CREATE TABLE "sys"."idxs" ("id" INTEGER, "table_id" INTEGER, "type" INTEGER, "name" VARCHAR(1024)); CREATE TABLE "sys"."index_types" ("index_type_id" SMALLINT NOT NULL, "index_type_name" VARCHAR(25) NOT NULL, CONSTRAINT "index_types_index_type_id_pkey" PRIMARY KEY ("index_type_id"), CONSTRAINT "index_types_index_type_name_unique" UNIQUE ("index_type_name")); +ALTER TABLE "sys"."index_types" SET READ ONLY; CREATE TABLE "sys"."key_types" ("key_type_id" SMALLINT NOT NULL, "key_type_name" VARCHAR(15) NOT NULL, CONSTRAINT "key_types_key_type_id_pkey" PRIMARY KEY ("key_type_id"), CONSTRAINT "key_types_key_type_name_unique" UNIQUE ("key_type_name")); +ALTER TABLE "sys"."key_types" SET READ ONLY; CREATE TABLE "sys"."keys" ("id" INTEGER, "table_id" INTEGER, "type" INTEGER, "name" VARCHAR(1024), "rkey" INTEGER, "action" INTEGER); CREATE TABLE "sys"."keywords" ("keyword" VARCHAR(40) NOT NULL, CONSTRAINT "keywords_keyword_pkey" PRIMARY KEY ("keyword")); +ALTER TABLE "sys"."keywords" SET READ ONLY; CREATE TABLE "sys"."netcdf_attrs" ("obj_name" VARCHAR(256), "att_name" VARCHAR(256), "att_type" VARCHAR(64), "value" CHARACTER LARGE OBJECT, "file_id" INTEGER, "gr_name" VARCHAR(256)); CREATE TABLE "sys"."netcdf_dims" ("dim_id" INTEGER, "file_id" INTEGER, "name" VARCHAR(64), "length" INTEGER); CREATE TABLE "sys"."netcdf_files" ("file_id" INTEGER, "location" CHAR(256)); @@ -989,6 +995,7 @@ CREATE TABLE "sys"."netcdf_vardim" ("var CREATE TABLE "sys"."netcdf_vars" ("var_id" INTEGER, "file_id" INTEGER, "name" VARCHAR(64), "vartype" VARCHAR(64), "ndim" INTEGER, "coord_dim_id" INTEGER); CREATE TABLE "sys"."objects" ("id" INTEGER, "name" VARCHAR(1024), "nr" INTEGER, "sub" INTEGER); CREATE TABLE "sys"."privilege_codes" ("privilege_code_id" INTEGER NOT NULL, "privilege_code_name" VARCHAR(40) NOT NULL, CONSTRAINT "privilege_codes_privilege_code_id_pkey" PRIMARY KEY ("privilege_code_id"), CONSTRAINT "privilege_codes_privilege_code_name_unique" UNIQUE ("privilege_code_name")); +ALTER TABLE "sys"."privilege_codes" SET READ ONLY; CREATE TABLE "sys"."privileges" ("obj_id" INTEGER, "auth_id" INTEGER, "privileges" INTEGER, "grantor" INTEGER, "grantable" INTEGER); CREATE TABLE "sys"."range_partitions" ("table_id" INTEGER, "partition_id" INTEGER, "minimum" VARCHAR(2048), "maximum" VARCHAR(2048), "with_nulls" BOOLEAN); CREATE TABLE "sys"."schemas" ("id" INTEGER, "name" VARCHAR(1024), "authorization" INTEGER, "owner" INTEGER, "system" BOOLEAN); @@ -998,6 +1005,7 @@ CREATE TABLE "sys"."statistics" ("column CREATE TABLE "sys"."storagemodelinput" ("schema" VARCHAR(1024) NOT NULL, "table" VARCHAR(1024) NOT NULL, "column" VARCHAR(1024) NOT NULL, "type" VARCHAR(1024) NOT NULL, "typewidth" INTEGER NOT NULL, "count" BIGINT NOT NULL, "distinct" BIGINT NOT NULL, "atomwidth" INTEGER NOT NULL, "reference" BOOLEAN NOT NULL DEFAULT false, "sorted" BOOLEAN, "unique" BOOLEAN, "isacolumn" BOOLEAN NOT NULL DEFAULT true); CREATE TABLE "sys"."table_partitions" ("id" INTEGER, "table_id" INTEGER, "column_id" INTEGER, "expression" VARCHAR(2048), "type" TINYINT); CREATE TABLE "sys"."table_types" ("table_type_id" SMALLINT NOT NULL, "table_type_name" VARCHAR(25) NOT NULL, CONSTRAINT "table_types_table_type_id_pkey" PRIMARY KEY ("table_type_id"), CONSTRAINT "table_types_table_type_name_unique" UNIQUE ("table_type_name")); +ALTER TABLE "sys"."table_types" SET READ ONLY; CREATE TABLE "sys"."triggers" ("id" INTEGER, "name" VARCHAR(1024), "table_id" INTEGER, "time" SMALLINT, "orientation" SMALLINT, "event" SMALLINT, "old_name" VARCHAR(1024), "new_name" VARCHAR(1024), "condition" VARCHAR(2048), "statement" VARCHAR(2048)); CREATE TABLE "sys"."types" ("id" INTEGER, "systemname" VARCHAR(256), "sqlname" VARCHAR(1024), "digits" INTEGER, "scale" INTEGER, "radix" INTEGER, "eclass" INTEGER, "schema_id" INTEGER); CREATE TABLE "sys"."user_role" ("login_id" INTEGER, "role_id" INTEGER); diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit b/sql/test/emptydb/Tests/check.stable.out.32bit --- a/sql/test/emptydb/Tests/check.stable.out.32bit +++ b/sql/test/emptydb/Tests/check.stable.out.32bit @@ -972,16 +972,22 @@ CREATE TABLE "sys"."comments" ("id" INTE CREATE TABLE "sys"."db_user_info" ("name" VARCHAR(1024), "fullname" VARCHAR(2048), "default_schema" INTEGER, "schema_path" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."dependencies" ("id" INTEGER, "depend_id" INTEGER, "depend_type" SMALLINT); CREATE TABLE "sys"."dependency_types" ("dependency_type_id" SMALLINT NOT NULL, "dependency_type_name" VARCHAR(15) NOT NULL, CONSTRAINT "dependency_types_dependency_type_id_pkey" PRIMARY KEY ("dependency_type_id"), CONSTRAINT "dependency_types_dependency_type_name_unique" UNIQUE ("dependency_type_name")); +ALTER TABLE "sys"."dependency_types" SET READ ONLY; CREATE TABLE "sys"."dump_statements" ("o" INTEGER, "s" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."fkey_actions" ("action_id" SMALLINT NOT NULL, "action_name" VARCHAR(15) NOT NULL, CONSTRAINT "fkey_actions_action_id_pkey" PRIMARY KEY ("action_id")); CREATE TABLE "sys"."function_languages" ("language_id" SMALLINT NOT NULL, "language_name" VARCHAR(20) NOT NULL, "language_keyword" VARCHAR(20), CONSTRAINT "function_languages_language_id_pkey" PRIMARY KEY ("language_id"), CONSTRAINT "function_languages_language_name_unique" UNIQUE ("language_name")); +ALTER TABLE "sys"."function_languages" SET READ ONLY; CREATE TABLE "sys"."function_types" ("function_type_id" SMALLINT NOT NULL, "function_type_name" VARCHAR(30) NOT NULL, "function_type_keyword" VARCHAR(30) NOT NULL, CONSTRAINT "function_types_function_type_id_pkey" PRIMARY KEY ("function_type_id"), CONSTRAINT "function_types_function_type_name_unique" UNIQUE ("function_type_name")); +ALTER TABLE "sys"."function_types" SET READ ONLY; CREATE TABLE "sys"."functions" ("id" INTEGER, "name" VARCHAR(256), "func" VARCHAR(8196), "mod" VARCHAR(8196), "language" INTEGER, "type" INTEGER, "side_effect" BOOLEAN, "varres" BOOLEAN, "vararg" BOOLEAN, "schema_id" INTEGER, "system" BOOLEAN, "semantics" BOOLEAN); CREATE TABLE "sys"."idxs" ("id" INTEGER, "table_id" INTEGER, "type" INTEGER, "name" VARCHAR(1024)); CREATE TABLE "sys"."index_types" ("index_type_id" SMALLINT NOT NULL, "index_type_name" VARCHAR(25) NOT NULL, CONSTRAINT "index_types_index_type_id_pkey" PRIMARY KEY ("index_type_id"), CONSTRAINT "index_types_index_type_name_unique" UNIQUE ("index_type_name")); +ALTER TABLE "sys"."index_types" SET READ ONLY; CREATE TABLE "sys"."key_types" ("key_type_id" SMALLINT NOT NULL, "key_type_name" VARCHAR(15) NOT NULL, CONSTRAINT "key_types_key_type_id_pkey" PRIMARY KEY ("key_type_id"), CONSTRAINT "key_types_key_type_name_unique" UNIQUE ("key_type_name")); +ALTER TABLE "sys"."key_types" SET READ ONLY; CREATE TABLE "sys"."keys" ("id" INTEGER, "table_id" INTEGER, "type" INTEGER, "name" VARCHAR(1024), "rkey" INTEGER, "action" INTEGER); CREATE TABLE "sys"."keywords" ("keyword" VARCHAR(40) NOT NULL, CONSTRAINT "keywords_keyword_pkey" PRIMARY KEY ("keyword")); +ALTER TABLE "sys"."keywords" SET READ ONLY; CREATE TABLE "sys"."netcdf_attrs" ("obj_name" VARCHAR(256), "att_name" VARCHAR(256), "att_type" VARCHAR(64), "value" CHARACTER LARGE OBJECT, "file_id" INTEGER, "gr_name" VARCHAR(256)); CREATE TABLE "sys"."netcdf_dims" ("dim_id" INTEGER, "file_id" INTEGER, "name" VARCHAR(64), "length" INTEGER); CREATE TABLE "sys"."netcdf_files" ("file_id" INTEGER, "location" CHAR(256)); @@ -989,6 +995,7 @@ CREATE TABLE "sys"."netcdf_vardim" ("var CREATE TABLE "sys"."netcdf_vars" ("var_id" INTEGER, "file_id" INTEGER, "name" VARCHAR(64), "vartype" VARCHAR(64), "ndim" INTEGER, "coord_dim_id" INTEGER); CREATE TABLE "sys"."objects" ("id" INTEGER, "name" VARCHAR(1024), "nr" INTEGER, "sub" INTEGER); CREATE TABLE "sys"."privilege_codes" ("privilege_code_id" INTEGER NOT NULL, "privilege_code_name" VARCHAR(40) NOT NULL, CONSTRAINT "privilege_codes_privilege_code_id_pkey" PRIMARY KEY ("privilege_code_id"), CONSTRAINT "privilege_codes_privilege_code_name_unique" UNIQUE ("privilege_code_name")); +ALTER TABLE "sys"."privilege_codes" SET READ ONLY; CREATE TABLE "sys"."privileges" ("obj_id" INTEGER, "auth_id" INTEGER, "privileges" INTEGER, "grantor" INTEGER, "grantable" INTEGER); CREATE TABLE "sys"."range_partitions" ("table_id" INTEGER, "partition_id" INTEGER, "minimum" VARCHAR(2048), "maximum" VARCHAR(2048), "with_nulls" BOOLEAN); CREATE TABLE "sys"."schemas" ("id" INTEGER, "name" VARCHAR(1024), "authorization" INTEGER, "owner" INTEGER, "system" BOOLEAN); @@ -998,6 +1005,7 @@ CREATE TABLE "sys"."statistics" ("column CREATE TABLE "sys"."storagemodelinput" ("schema" VARCHAR(1024) NOT NULL, "table" VARCHAR(1024) NOT NULL, "column" VARCHAR(1024) NOT NULL, "type" VARCHAR(1024) NOT NULL, "typewidth" INTEGER NOT NULL, "count" BIGINT NOT NULL, "distinct" BIGINT NOT NULL, "atomwidth" INTEGER NOT NULL, "reference" BOOLEAN NOT NULL DEFAULT false, "sorted" BOOLEAN, "unique" BOOLEAN, "isacolumn" BOOLEAN NOT NULL DEFAULT true); CREATE TABLE "sys"."table_partitions" ("id" INTEGER, "table_id" INTEGER, "column_id" INTEGER, "expression" VARCHAR(2048), "type" TINYINT); CREATE TABLE "sys"."table_types" ("table_type_id" SMALLINT NOT NULL, "table_type_name" VARCHAR(25) NOT NULL, CONSTRAINT "table_types_table_type_id_pkey" PRIMARY KEY ("table_type_id"), CONSTRAINT "table_types_table_type_name_unique" UNIQUE ("table_type_name")); +ALTER TABLE "sys"."table_types" SET READ ONLY; CREATE TABLE "sys"."triggers" ("id" INTEGER, "name" VARCHAR(1024), "table_id" INTEGER, "time" SMALLINT, "orientation" SMALLINT, "event" SMALLINT, "old_name" VARCHAR(1024), "new_name" VARCHAR(1024), "condition" VARCHAR(2048), "statement" VARCHAR(2048)); CREATE TABLE "sys"."types" ("id" INTEGER, "systemname" VARCHAR(256), "sqlname" VARCHAR(1024), "digits" INTEGER, "scale" INTEGER, "radix" INTEGER, "eclass" INTEGER, "schema_id" INTEGER); CREATE TABLE "sys"."user_role" ("login_id" INTEGER, "role_id" INTEGER); diff --git a/sql/test/emptydb/Tests/check.stable.out.int128 b/sql/test/emptydb/Tests/check.stable.out.int128 --- a/sql/test/emptydb/Tests/check.stable.out.int128 +++ b/sql/test/emptydb/Tests/check.stable.out.int128 @@ -972,16 +972,22 @@ CREATE TABLE "sys"."comments" ("id" INTE CREATE TABLE "sys"."db_user_info" ("name" VARCHAR(1024), "fullname" VARCHAR(2048), "default_schema" INTEGER, "schema_path" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."dependencies" ("id" INTEGER, "depend_id" INTEGER, "depend_type" SMALLINT); CREATE TABLE "sys"."dependency_types" ("dependency_type_id" SMALLINT NOT NULL, "dependency_type_name" VARCHAR(15) NOT NULL, CONSTRAINT "dependency_types_dependency_type_id_pkey" PRIMARY KEY ("dependency_type_id"), CONSTRAINT "dependency_types_dependency_type_name_unique" UNIQUE ("dependency_type_name")); +ALTER TABLE "sys"."dependency_types" SET READ ONLY; CREATE TABLE "sys"."dump_statements" ("o" INTEGER, "s" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."fkey_actions" ("action_id" SMALLINT NOT NULL, "action_name" VARCHAR(15) NOT NULL, CONSTRAINT "fkey_actions_action_id_pkey" PRIMARY KEY ("action_id")); CREATE TABLE "sys"."function_languages" ("language_id" SMALLINT NOT NULL, "language_name" VARCHAR(20) NOT NULL, "language_keyword" VARCHAR(20), CONSTRAINT "function_languages_language_id_pkey" PRIMARY KEY ("language_id"), CONSTRAINT "function_languages_language_name_unique" UNIQUE ("language_name")); +ALTER TABLE "sys"."function_languages" SET READ ONLY; CREATE TABLE "sys"."function_types" ("function_type_id" SMALLINT NOT NULL, "function_type_name" VARCHAR(30) NOT NULL, "function_type_keyword" VARCHAR(30) NOT NULL, CONSTRAINT "function_types_function_type_id_pkey" PRIMARY KEY ("function_type_id"), CONSTRAINT "function_types_function_type_name_unique" UNIQUE ("function_type_name")); +ALTER TABLE "sys"."function_types" SET READ ONLY; CREATE TABLE "sys"."functions" ("id" INTEGER, "name" VARCHAR(256), "func" VARCHAR(8196), "mod" VARCHAR(8196), "language" INTEGER, "type" INTEGER, "side_effect" BOOLEAN, "varres" BOOLEAN, "vararg" BOOLEAN, "schema_id" INTEGER, "system" BOOLEAN, "semantics" BOOLEAN); CREATE TABLE "sys"."idxs" ("id" INTEGER, "table_id" INTEGER, "type" INTEGER, "name" VARCHAR(1024)); CREATE TABLE "sys"."index_types" ("index_type_id" SMALLINT NOT NULL, "index_type_name" VARCHAR(25) NOT NULL, CONSTRAINT "index_types_index_type_id_pkey" PRIMARY KEY ("index_type_id"), CONSTRAINT "index_types_index_type_name_unique" UNIQUE ("index_type_name")); +ALTER TABLE "sys"."index_types" SET READ ONLY; CREATE TABLE "sys"."key_types" ("key_type_id" SMALLINT NOT NULL, "key_type_name" VARCHAR(15) NOT NULL, CONSTRAINT "key_types_key_type_id_pkey" PRIMARY KEY ("key_type_id"), CONSTRAINT "key_types_key_type_name_unique" UNIQUE ("key_type_name")); +ALTER TABLE "sys"."key_types" SET READ ONLY; CREATE TABLE "sys"."keys" ("id" INTEGER, "table_id" INTEGER, "type" INTEGER, "name" VARCHAR(1024), "rkey" INTEGER, "action" INTEGER); CREATE TABLE "sys"."keywords" ("keyword" VARCHAR(40) NOT NULL, CONSTRAINT "keywords_keyword_pkey" PRIMARY KEY ("keyword")); +ALTER TABLE "sys"."keywords" SET READ ONLY; CREATE TABLE "sys"."netcdf_attrs" ("obj_name" VARCHAR(256), "att_name" VARCHAR(256), "att_type" VARCHAR(64), "value" CHARACTER LARGE OBJECT, "file_id" INTEGER, "gr_name" VARCHAR(256)); CREATE TABLE "sys"."netcdf_dims" ("dim_id" INTEGER, "file_id" INTEGER, "name" VARCHAR(64), "length" INTEGER); CREATE TABLE "sys"."netcdf_files" ("file_id" INTEGER, "location" CHAR(256)); @@ -989,6 +995,7 @@ CREATE TABLE "sys"."netcdf_vardim" ("var CREATE TABLE "sys"."netcdf_vars" ("var_id" INTEGER, "file_id" INTEGER, "name" VARCHAR(64), "vartype" VARCHAR(64), "ndim" INTEGER, "coord_dim_id" INTEGER); CREATE TABLE "sys"."objects" ("id" INTEGER, "name" VARCHAR(1024), "nr" INTEGER, "sub" INTEGER); CREATE TABLE "sys"."privilege_codes" ("privilege_code_id" INTEGER NOT NULL, "privilege_code_name" VARCHAR(40) NOT NULL, CONSTRAINT "privilege_codes_privilege_code_id_pkey" PRIMARY KEY ("privilege_code_id"), CONSTRAINT "privilege_codes_privilege_code_name_unique" UNIQUE ("privilege_code_name")); +ALTER TABLE "sys"."privilege_codes" SET READ ONLY; CREATE TABLE "sys"."privileges" ("obj_id" INTEGER, "auth_id" INTEGER, "privileges" INTEGER, "grantor" INTEGER, "grantable" INTEGER); CREATE TABLE "sys"."range_partitions" ("table_id" INTEGER, "partition_id" INTEGER, "minimum" VARCHAR(2048), "maximum" VARCHAR(2048), "with_nulls" BOOLEAN); CREATE TABLE "sys"."schemas" ("id" INTEGER, "name" VARCHAR(1024), "authorization" INTEGER, "owner" INTEGER, "system" BOOLEAN); @@ -998,6 +1005,7 @@ CREATE TABLE "sys"."statistics" ("column CREATE TABLE "sys"."storagemodelinput" ("schema" VARCHAR(1024) NOT NULL, "table" VARCHAR(1024) NOT NULL, "column" VARCHAR(1024) NOT NULL, "type" VARCHAR(1024) NOT NULL, "typewidth" INTEGER NOT NULL, "count" BIGINT NOT NULL, "distinct" BIGINT NOT NULL, "atomwidth" INTEGER NOT NULL, "reference" BOOLEAN NOT NULL DEFAULT false, "sorted" BOOLEAN, "unique" BOOLEAN, "isacolumn" BOOLEAN NOT NULL DEFAULT true); CREATE TABLE "sys"."table_partitions" ("id" INTEGER, "table_id" INTEGER, "column_id" INTEGER, "expression" VARCHAR(2048), "type" TINYINT); CREATE TABLE "sys"."table_types" ("table_type_id" SMALLINT NOT NULL, "table_type_name" VARCHAR(25) NOT NULL, CONSTRAINT "table_types_table_type_id_pkey" PRIMARY KEY ("table_type_id"), CONSTRAINT "table_types_table_type_name_unique" UNIQUE ("table_type_name")); +ALTER TABLE "sys"."table_types" SET READ ONLY; CREATE TABLE "sys"."triggers" ("id" INTEGER, "name" VARCHAR(1024), "table_id" INTEGER, "time" SMALLINT, "orientation" SMALLINT, "event" SMALLINT, "old_name" VARCHAR(1024), "new_name" VARCHAR(1024), "condition" VARCHAR(2048), "statement" VARCHAR(2048)); CREATE TABLE "sys"."types" ("id" INTEGER, "systemname" VARCHAR(256), "sqlname" VARCHAR(1024), "digits" INTEGER, "scale" INTEGER, "radix" INTEGER, "eclass" INTEGER, "schema_id" INTEGER); CREATE TABLE "sys"."user_role" ("login_id" INTEGER, "role_id" INTEGER); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list