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

Reply via email to