Changeset: 596f70f99587 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=596f70f99587
Modified Files:
dump.sql
dump_output.sql
Branch: monetdbe-proxy
Log Message:
Add 'CREATE INDEX' variaties and their comments + comments on columns.
diffs (102 lines):
diff --git a/dump.sql b/dump.sql
--- a/dump.sql
+++ b/dump.sql
@@ -93,7 +93,43 @@ CREATE FUNCTION dump_table_constraint_ty
FROM describe_constraints() GROUP BY "table", con, type;
END;
---TODO expand dump_column_definition functionality
+CREATE FUNCTION describe_indices() RETURNS TABLE (i STRING, o INT, s STRING, t
STRING, c STRING, it STRING) BEGIN
+RETURN
+ WITH it (id, idx) AS (VALUES (0, 'INDEX'), (4, 'IMPRINTS INDEX'), (5,
'ORDERED INDEX')) --UNIQUE INDEX wraps to INDEX.
+ SELECT
+ i.name,
+ kc.nr, --TODO: Does this determine the concatenation order?
+ s.name,
+ t.name,
+ c.name,
+ it.idx
+ FROM
+ sys.idxs AS i LEFT JOIN sys.keys AS k ON i.name = k.name,
+ sys.objects AS kc,
+ sys._columns AS c,
+ sys.schemas s,
+ sys._tables AS t,
+ it
+ WHERE
+ i.table_id = t.id
+ AND i.id = kc.id
+ AND kc.name = c.name
+ AND t.id = c.table_id
+ AND t.schema_id = s.id
+ AND k.type IS NULL
+ AND i.type = it.id
+ ORDER BY i.name, kc.nr;
+END;
+
+CREATE FUNCTION dump_indices() RETURNS TABLE(stm STRING) BEGIN
+ RETURN
+ SELECT
+ 'CREATE ' || it || ' ' ||
+ DQ(i) || ' ON ' || DQ(s) || '.' || DQ(t) ||
+ '(' || GROUP_CONCAT(c) || ');'
+ FROM describe_indices() GROUP BY i, it, s, t;
+END;
+
CREATE FUNCTION dump_column_definition(tid INT) RETURNS STRING BEGIN
RETURN
SELECT
@@ -212,12 +248,28 @@ BEGIN
INSERT INTO dump_statements(s) SELECT * FROM
dump_table_constraint_type();
- --TODO MERGE TABLE
- --TODO COMMENTS ON TABLE
+ INSERT INTO dump_statements(s) SELECT * FROM dump_indices();
+
+ INSERT INTO dump_statements(s) --dump_create_comments_on_schemas
+ SELECT comment_on('INDEX', DQ(i.name), rem.remark)
+ FROM sys.idxs i JOIN sys.comments rem ON i.id = rem.id;
+
+ INSERT INTO dump_statements(s) --dump_create_comments_on_schemas
+ SELECT comment_on('COLUMN', DQ(s.name) || '.' || DQ(t.name) || '.' ||
DQ(c.name), rem.remark)
+ FROM sys.columns c JOIN sys.comments rem ON c.id = rem.id,
sys.tables t, sys.schemas s WHERE c.table_id = t.id AND t.schema_id = s.id AND
NOT t.system;
+
+ --TODO FOREIGN KEYs
+ --TODO PARTITION TABLES
+ --TODO details on SEQUENCES
--TODO functions
- --TODO CREATE INDEX + COMMENT
+ --TODO Triggers
--TODO VIEW
+ --TODO COMMENTS ON TABLE
+ --TODO TABLE level grants
+ --TODO COLUMN level grants
--TODO User Defined Types?
+ --TODO STREAM TABLE?
+ --TODO Triggers
INSERT INTO dump_statements(s) VALUES ('COMMIT;');
diff --git a/dump_output.sql b/dump_output.sql
--- a/dump_output.sql
+++ b/dump_output.sql
@@ -13,6 +13,8 @@ CREATE SEQUENCE "sys"."seq_8917" AS INTE
CREATE SEQUENCE "sys"."seq_10005" AS INTEGER;
CREATE SEQUENCE "sys"."seq_8264" AS INTEGER;
CREATE SEQUENCE "sys"."seq_8325" AS INTEGER;
+CREATE SEQUENCE "sys"."seq_8231" AS INTEGER;
+CREATE SEQUENCE "sys"."seq_8441" 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));
@@ -38,4 +40,9 @@ ALTER TABLE "bolo" ADD CONSTRAINT "cpk"
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 INDEX "ind1" ON "sys"."ungolo"(x,y);
+CREATE IMPRINTS INDEX "ind2" ON "sys"."ungolo"(y,z);
+CREATE ORDERED INDEX "ind3" ON "sys"."ungolo"(x,z);
+COMMENT ON INDEX "ind3" IS 'This is a comment on an index.' ;
+COMMENT ON COLUMN "sfoo"."tfoo"."i" IS 'This is a comment on a column.' ;
COMMIT;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list