Changeset: 0552ef2b9a60 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0552ef2b9a60 Modified Files: dump.sql dump_output.sql Branch: monetdbe-proxy Log Message:
Small fixes and fix output. diffs (120 lines): diff --git a/dump.sql b/dump.sql --- a/dump.sql +++ b/dump.sql @@ -65,7 +65,7 @@ CREATE FUNCTION dump_type(type STRING, d END; END; -CREATE FUNCTION dump_contraint_type_name(id INT) RETURNS STRING BEGIN +CREATE FUNCTION dump_CONSTRAINT_type_name(id INT) RETURNS STRING BEGIN RETURN CASE WHEN id = 0 THEN 'PRIMARY KEY' @@ -75,7 +75,7 @@ END; CREATE FUNCTION describe_constraints() RETURNS TABLE("table" STRING, nr INT, col STRING, con STRING, type STRING) BEGIN RETURN - SELECT t.name, kc.nr, kc.name, k.name, dump_contraint_type_name(k.type) + SELECT t.name, kc.nr, kc.name, k.name, dump_CONSTRAINT_type_name(k.type) FROM sys._tables t, sys.objects kc, sys.keys k WHERE kc.id = k.id AND k.table_id = t.id @@ -88,7 +88,7 @@ CREATE FUNCTION dump_table_constraint_ty RETURN SELECT 'ALTER TABLE ' || DQ("table") || - ' ADD CONTRAINT ' || DQ(con) || ' '|| + ' ADD CONSTRAINT ' || DQ(con) || ' '|| type || ' (' || GROUP_CONCAT(DQ(col), ', ') || ');' FROM describe_constraints() GROUP BY "table", con, type; END; @@ -115,7 +115,7 @@ END; CREATE FUNCTION dump_merge_table_partition_expressions(tid INT) RETURNS STRING BEGIN RETURN SELECT - 'PARTITION BY ' || + ' PARTITION BY ' || CASE WHEN bit_and(tp.type, 2) = 2 THEN 'VALUES ' @@ -123,8 +123,8 @@ BEGIN END || CASE WHEN bit_and(tp.type, 4) = 4 --column expression - THEN 'ON ' || (SELECT DQ(c.name) FROM sys.columns c WHERE c.id = tp.column_id) - ELSE 'USING ' || SQ(tp.expression) --generic expression + THEN 'ON ' || '(' || (SELECT DQ(c.name) || ')' FROM sys.columns c WHERE c.id = tp.column_id) + ELSE 'USING ' || '(' || tp.expression || ')' --generic expression END FROM sys.table_partitions tp WHERE tp.table_id = tid; @@ -193,23 +193,18 @@ BEGIN WHERE sch.id = seq.schema_id; INSERT INTO dump_statements(s) --dump_create_tables - SELECT CASE - WHEN t.type = 5 THEN - 'CREATE ' || ts.table_type_name || ' ' || DQ(s.name) || '.' || DQ(t.name) || dump_column_definition(t.id) || dump_remote_table_expressions(s.name, t.name) || ';' - ELSE - 'CREATE ' || ts.table_type_name || ' ' || DQ(s.name) || '.' || DQ(t.name) || dump_column_definition(t.id) || ';' + SELECT + 'CREATE ' || ts.table_type_name || ' ' || DQ(s.name) || '.' || DQ(t.name) || dump_column_definition(t.id) || + CASE + WHEN ts.table_type_name = 'REMOTE TABLE' THEN + dump_remote_table_expressions(s.name, t.name) || ';' + WHEN ts.table_type_name = 'MERGE TABLE' THEN + dump_merge_table_partition_expressions(t.id) || ';' + ELSE + ';' END FROM sys.schemas s, table_types ts, sys._tables t - WHERE t.type IN (0, 5, 6) - AND t.system = FALSE - AND s.id = t.schema_id - AND ts.table_type_id = t.type - AND s.name <> 'tmp'; - - INSERT INTO dump_statements(s) --dump_create_merge_tables - SELECT 'CREATE ' || ts.table_type_name || ' ' || DQ(s.name) || '.' || DQ(t.name) || dump_column_definition(t.id) || dump_merge_table_partition_expressions(t.id) || ';' - FROM sys.schemas s, table_types ts, sys._tables t - WHERE t.type = 3 + WHERE ts.table_type_name IN ('TABLE', 'MERGE TABLE', 'REMOTE TABLE', 'REPLICA TABLE') AND t.system = FALSE AND s.id = t.schema_id AND ts.table_type_id = t.type diff --git a/dump_output.sql b/dump_output.sql --- a/dump_output.sql +++ b/dump_output.sql @@ -10,6 +10,9 @@ CREATE SEQUENCE "sys"."seq_18814" AS INT CREATE SEQUENCE "sys"."seq_8219" AS INTEGER; CREATE SEQUENCE "sys"."seq_9119" AS INTEGER; CREATE SEQUENCE "sys"."seq_8917" AS INTEGER; +CREATE SEQUENCE "sys"."seq_10005" AS INTEGER; +CREATE SEQUENCE "sys"."seq_8264" AS INTEGER; +CREATE SEQUENCE "sys"."seq_8325" AS INTEGER; COMMENT ON SEQUENCE "sys"."seq_8219" IS 'This is a comment on a sequence.' ; CREATE TABLE "sys"."test" ("s" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."bla" ("s" CHARACTER LARGE OBJECT(10)); @@ -23,14 +26,16 @@ CREATE TABLE "sfoo"."tfoo" ("i" INTEGER) CREATE TABLE "sfoo"."test" ("s" CHARACTER LARGE OBJECT); CREATE TABLE "sys"."pfoo1" ("i" INTEGER); CREATE TABLE "sys"."pfoo2" ("i" INTEGER); -CREATE REMOTE TABLE "sys"."rfoo" ("i" INTEGER) ON 'mapi:monetdb://remote.host.url:50000/dbname' WITH USER 'bob' ENCRYPTED PASSWORD '4a3ed8147e37876adc8f76328e5abcc1b470e6acfc18efea0135f983604953a58e183c1a6086e91ba3e821d926f5fdeb37761c7ca0328a963f5e92870675b728' ; +CREATE TABLE "sys"."lower_scorers" ("name" CHARACTER LARGE OBJECT, "first_score" INTEGER, "second_score" INTEGER); +CREATE TABLE "sys"."higher_scorers" ("name" CHARACTER LARGE OBJECT, "first_score" INTEGER, "second_score" INTEGER); +CREATE TABLE "sys"."foo" ("i" INTEGER, "s" CHARACTER LARGE OBJECT); +CREATE TABLE "sys"."bar" ("i" INTEGER, "s" CHARACTER LARGE OBJECT); +CREATE REMOTE TABLE "sys"."rfoo" ("i" INTEGER) ON 'mapi:monetdb://remote.host.url:50000/dbname' WITH USER 'bob' ENCRYPTED PASSWORD 'f8e3183d38e6c51889582cb260ab825252f395b4ac8fb0e6b13e9a71f7c10a80d5301e4a949f2783cb0c20205f1d850f87045f4420ad2271c8fd5f0cd8944be3' ; +CREATE MERGE TABLE "sys"."scorers" ("name" CHARACTER LARGE OBJECT, "first_score" INTEGER, "second_score" INTEGER) PARTITION BY VALUES USING ("sys"."mod"("sys"."greatest"("first_score","second_score"),10)); +CREATE MERGE TABLE "sys"."splitted" ("stamp" TIMESTAMP , "val" INTEGER) PARTITION BY RANGE ON ("stamp"); +CREATE REPLICA TABLE "sys"."rep" ("i" INTEGER); ALTER TABLE "bolo" ADD CONSTRAINT "cpk" PRIMARY KEY ("s", "v"); ALTER TABLE "rolo" ADD CONSTRAINT "rolo_v_pkey" PRIMARY KEY ("v"); ALTER TABLE "ungolo" ADD CONSTRAINT "ungolo_x_y_unique" UNIQUE ("x", "y"); ALTER TABLE "ungolo" ADD CONSTRAINT "ungolo_z_unique" UNIQUE ("z"); -CREATE MERGE TABLE scorers (name clob, first_score int, second_score int) PARTITION BY VALUES USING (greatest(first_score, second_score) % 10); -CREATE TABLE lower_scorers (name clob, first_score int, second_score int); -CREATE TABLE higher_scorers (name clob, first_score int, second_score int); -ALTER TABLE scorers ADD TABLE lower_scorers AS PARTITION IN (0, 1, 2, 3, 4); -ALTER TABLE scorers ADD TABLE higher_scorers AS PARTITION IN (5, 6, 7, 8, 9); COMMIT; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list