Changeset: 4c3e8ad24a82 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4c3e8ad24a82 Modified Files: sql/test/Tests/comment-on.sql sql/test/Tests/comment-on.stable.err sql/test/Tests/comment-on.stable.out Branch: Mar2018 Log Message:
Extended COMMENT ON tests with - COMMENT ON VIEW COLUMNS - COMMENT ON all supported db-object types for which the object name does not exist (to test the error reporting) - COMMENT ON not supported db-object types, such as TYPE, TRIGGER, DATABASE, etc. (to test syntax error reporting) I found that dumping a view with comments on view columns does not dumps those viewq column comments. It will be fixed separately. diffs (206 lines): diff --git a/sql/test/Tests/comment-on.sql b/sql/test/Tests/comment-on.sql --- a/sql/test/Tests/comment-on.sql +++ b/sql/test/Tests/comment-on.sql @@ -87,6 +87,10 @@ COMMENT ON COLUMN tab.j IS 'jj'; COMMENT ON COLUMN foo.tab.i IS 'ii'; \d tab +COMMENT ON COLUMN vivi.j IS 'vjj'; +COMMENT ON COLUMN foo.vivi.i IS 'vii'; +\d vivi + /* comment on index works */ CREATE INDEX idx ON tab(j,i); COMMENT ON INDEX idx IS 'index on j'; @@ -134,6 +138,36 @@ COMMENT ON PROCEDURE g IS 'proc!'; -- if there is ambiguity we can't COMMENT ON FUNCTION f IS 'ambiguous'; + +-- test all COMMENT ON <db-objecttype> variations with an object name which does not exist, so should report a "no such <db-objecttype>: abc" error +COMMENT ON SCHEMA "abc" IS 'schema abc'; +COMMENT ON TABLE "abc" IS 'table abc'; +COMMENT ON VIEW "abc" IS 'view abc'; +COMMENT ON COLUMN "abc".abc IS 'column abc'; +COMMENT ON INDEX "abc" IS 'index abc'; +COMMENT ON SEQUENCE "abc" IS 'seq abc'; +COMMENT ON FUNCTION "abc" IS 'function abc'; +COMMENT ON PROCEDURE "abc" IS 'procedure abc'; +COMMENT ON AGGREGATE "abc" IS 'aggregate abc'; +COMMENT ON FILTER FUNCTION "abc" IS 'filter function abc'; +COMMENT ON LOADER "abc" IS 'loader abc'; + +-- test COMMENT ON <db-objecttype> for db-objecttypes for which we do NOT support comments to be set, so should report a syntax error +COMMENT ON TYPE "int" IS 'signed integer number 32 bits'; +COMMENT ON TRIGGER "abc" IS 'trigger abc'; +COMMENT ON PRIMARY KEY "abc" IS 'primary key abc'; +COMMENT ON FOREIGN KEY "abc" IS 'foreign key abc'; +COMMENT ON UNIQUE KEY "abc" IS 'unique key abc'; +COMMENT ON KEY "abc" IS 'key abc'; +COMMENT ON FUNCTION ARGUMENT abc.i IS 'function argument abc.i'; +COMMENT ON PROCEDURE ARGUMENT abc.i IS 'procedure argument abc.i'; +COMMENT ON DATABASE "abc" IS 'database abc'; + + +-- before cleanup show the created comments +SELECT remark FROM sys.comments order by remark; + +-- cleanup DROP FUNCTION f(); DROP FUNCTION f(INT); DROP FUNCTION f(INT,INT); @@ -147,3 +181,7 @@ DROP TABLE tab; SET SCHEMA sys; DROP SCHEMA foo; + +-- after dropping all the created objects, the comments should be removed also +SELECT remark FROM sys.comments order by remark; + diff --git a/sql/test/Tests/comment-on.stable.err b/sql/test/Tests/comment-on.stable.err --- a/sql/test/Tests/comment-on.stable.err +++ b/sql/test/Tests/comment-on.stable.err @@ -48,6 +48,86 @@ MAPI = (monetdb) /var/tmp/mtest-69226/. QUERY = COMMENT ON FUNCTION f IS 'ambiguous'; ERROR = !COMMENT FUNCTION: there are more than one function called 'f', please use the full signature CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON SCHEMA "abc" IS 'schema abc'; +ERROR = !COMMENT ON:no such schema: abc +CODE = 3F000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON TABLE "abc" IS 'table abc'; +ERROR = !COMMENT ON:no such table: foo.abc +CODE = 42S02 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON VIEW "abc" IS 'view abc'; +ERROR = !COMMENT ON:no such view: foo.abc +CODE = 42S02 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON COLUMN "abc".abc IS 'column abc'; +ERROR = !COMMENT ON:no such table: foo.abc +CODE = 42S02 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON INDEX "abc" IS 'index abc'; +ERROR = !COMMENT ON:no such index: foo.abc +CODE = 42S12 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON SEQUENCE "abc" IS 'seq abc'; +ERROR = !COMMENT ON:no such sequence: foo.abc +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON FUNCTION "abc" IS 'function abc'; +ERROR = !COMMENT FUNCTION: no such function 'abc' +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON PROCEDURE "abc" IS 'procedure abc'; +ERROR = !COMMENT PROCEDURE: no such procedure 'abc' +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON AGGREGATE "abc" IS 'aggregate abc'; +ERROR = !COMMENT AGGREGATE: no such aggregate 'abc' +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON FILTER FUNCTION "abc" IS 'filter function abc'; +ERROR = !COMMENT FILTER FUNCTION: no such filter function 'abc' +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON LOADER "abc" IS 'loader abc'; +ERROR = !COMMENT PROCEDURE: no such procedure 'abc' +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON TYPE "int" IS 'signed integer number 32 bits'; +ERROR = !syntax error, unexpected TYPE in: "comment on type" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON TRIGGER "abc" IS 'trigger abc'; +ERROR = !syntax error, unexpected TRIGGER in: "comment on trigger" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON PRIMARY KEY "abc" IS 'primary key abc'; +ERROR = !syntax error, unexpected PRIMARY in: "comment on primary" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON FOREIGN KEY "abc" IS 'foreign key abc'; +ERROR = !syntax error, unexpected FOREIGN in: "comment on foreign" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON UNIQUE KEY "abc" IS 'unique key abc'; +ERROR = !syntax error, unexpected UNIQUE in: "comment on unique" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON KEY "abc" IS 'key abc'; +ERROR = !syntax error, unexpected KEY in: "comment on key" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON FUNCTION ARGUMENT abc.i IS 'function argument abc.i'; +ERROR = !syntax error, unexpected IDENT, expecting IS in: "comment on function argument abc" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON PROCEDURE ARGUMENT abc.i IS 'procedure argument abc.i'; +ERROR = !syntax error, unexpected IDENT, expecting IS in: "comment on procedure argument abc" +CODE = 42000 +MAPI = (monetdb) /var/tmp/mtest-19692/.s.monetdb.35755 +QUERY = COMMENT ON DATABASE "abc" IS 'database abc'; +ERROR = !syntax error, unexpected IDENT in: "comment on database" +CODE = 42000 # 15:45:23 > # 15:45:23 > "Done." diff --git a/sql/test/Tests/comment-on.stable.out b/sql/test/Tests/comment-on.stable.out --- a/sql/test/Tests/comment-on.stable.out +++ b/sql/test/Tests/comment-on.stable.out @@ -122,6 +122,12 @@ CREATE TABLE "foo"."tab" ( COMMENT ON TABLE "foo"."tab" IS 'table'; COMMENT ON COLUMN "foo"."tab"."i" IS 'ii'; COMMENT ON COLUMN "foo"."tab"."j" IS 'jj'; +#COMMENT ON COLUMN vivi.j IS 'vjj'; +#COMMENT ON COLUMN foo.vivi.i IS 'vii'; +create view vivi as select * from tab; +COMMENT ON VIEW "foo"."vivi" IS 'phew'; +COMMENT ON COLUMN "foo"."vivi"."i" IS 'vii'; +COMMENT ON COLUMN "foo"."vivi"."j" IS 'vjj'; #CREATE INDEX idx ON tab(j,i); CREATE TABLE "foo"."tab" ( "i" INTEGER, @@ -163,6 +169,40 @@ create procedure g() begin delete from t COMMENT ON PROCEDURE "foo"."g"() IS 'proc'; create procedure g() begin delete from tab where false; end; COMMENT ON PROCEDURE "foo"."g"() IS 'proc!'; +#SELECT remark FROM sys.comments order by remark; +% sys.comments # table_name +% remark # name +% varchar # type +% 17 # length +[ "0 parms" ] +[ "1 parm" ] +[ "2 parms" ] +[ "ii" ] +[ "index on j" ] +[ "jj" ] +[ "one final comment" ] +[ "phew" ] +[ "proc!" ] +[ "still counting" ] +[ "table" ] +[ "vii" ] +[ "vjj" ] +#DROP FUNCTION f(); +#DROP FUNCTION f(INT); +#DROP FUNCTION f(INT,INT); +#DROP FUNCTION f(INT,INT,INT); +#DROP FUNCTION f(INT,INT,INT,INT); +#DROP PROCEDURE g(); +#DROP SEQUENCE counter; +#DROP VIEW vivi; +#DROP TABLE tab; +#SET SCHEMA sys; +#DROP SCHEMA foo; +#SELECT remark FROM sys.comments order by remark; +% sys.comments # table_name +% remark # name +% varchar # type +% 0 # length # 12:35:23 > # 12:35:23 > "Done." _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list