Changeset: 59d4826d30e7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=59d4826d30e7
Modified Files:
dump.sql
dump_output.sql
Branch: monetdbe-proxy
Log Message:
Fix read only merge table definitions.
diffs (52 lines):
diff --git a/dump.sql b/dump.sql
--- a/dump.sql
+++ b/dump.sql
@@ -153,20 +153,24 @@ END;
CREATE FUNCTION dump_merge_table_partition_expressions(tid INT) RETURNS STRING
BEGIN
- RETURN SELECT
- ' PARTITION BY ' ||
- CASE
- WHEN bit_and(tp.type, 2) = 2
- THEN 'VALUES '
- ELSE 'RANGE '
- 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 ' || '(' || tp.expression || ')'
--generic expression
+ RETURN
+ SELECT
+ CASE WHEN tp.table_id IS NOT NULL THEN --updatable
merge table
+ ' PARTITION BY ' ||
+ CASE
+ WHEN bit_and(tp.type, 2) = 2
+ THEN 'VALUES '
+ ELSE 'RANGE '
+ 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 ' || '(' || tp.expression
|| ')' --generic expression
+ END
+ ELSE
--read only partition merge table.
+ ''
END
- FROM sys.table_partitions tp
- WHERE tp.table_id = tid;
+ FROM (VALUES (tid)) t(id) LEFT JOIN sys.table_partitions tp ON
t.id = tp.table_id;
END;
--SELECT * FROM dump_foreign_keys();
diff --git a/dump_output.sql b/dump_output.sql
--- a/dump_output.sql
+++ b/dump_output.sql
@@ -41,6 +41,7 @@ CREATE TABLE "sbar"."bar" ("bi" INTEGER
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 MERGE TABLE "sys"."m1" ("i" INTEGER);
CREATE REPLICA TABLE "sys"."rep" ("i" INTEGER);
CREATE TABLE "sys"."first_decade" ("stamp" TIMESTAMP , "val" INTEGER);
CREATE TABLE "sys"."second_decade" ("stamp" TIMESTAMP , "val" INTEGER);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list