Changeset: bbdcd25c0219 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bbdcd25c0219
Modified Files:
sql/ChangeLog
sql/backends/monet5/sql_upgrades.c
sql/scripts/91_information_schema.sql
Branch: default
Log Message:
Improve returned information on interval columns for columns DATA_TYPE,
INTERVAL_TYPE and INTERVAL_PRECISION of view INFORMATION_SCHEMA.COLUMNS.
Added system views: INFORMATION_SCHEMA.CHECK_CONSTRAINTS,
INFORMATION_SCHEMA.TABLE_CONSTRAINTS and INFORMATION_SCHEMA.SEQUENCES.
diffs (258 lines):
diff --git a/sql/ChangeLog b/sql/ChangeLog
--- a/sql/ChangeLog
+++ b/sql/ChangeLog
@@ -8,6 +8,9 @@
information_schema.views
information_schema.columns
information_schema.character_sets
+ information_schema.check_constraints
+ information_schema.table_constraints
+ information_schema.sequences
Most views have been extended (after the standard columns) with MonetDB
specific information columns such as schema_id, table_id, column_id, etc.
diff --git a/sql/backends/monet5/sql_upgrades.c
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -6021,6 +6021,7 @@ sql_update_default(Client c, mvc *sql, s
"CREATE SCHEMA INFORMATION_SCHEMA;\n"
"COMMENT ON SCHEMA INFORMATION_SCHEMA IS 'ISO/IEC 9075-11
SQL/Schemata';\n"
"update sys.schemas set system = true where name =
'information_schema';\n"
+
"CREATE VIEW INFORMATION_SCHEMA.CHARACTER_SETS AS SELECT\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,\n"
@@ -6031,6 +6032,7 @@ sql_update_default(Client c, mvc *sql, s
" cast(NULL AS varchar(1)) AS DEFAULT_COLLATE_SCHEMA,\n"
" cast(NULL AS varchar(1)) AS DEFAULT_COLLATE_NAME;\n"
"GRANT SELECT ON TABLE INFORMATION_SCHEMA.CHARACTER_SETS TO
PUBLIC WITH GRANT OPTION;\n"
+
"CREATE VIEW INFORMATION_SCHEMA.SCHEMATA AS SELECT\n"
" cast(NULL AS varchar(1)) AS CATALOG_NAME,\n"
" s.\"name\" AS SCHEMA_NAME,\n"
@@ -6048,6 +6050,7 @@ sql_update_default(Client c, mvc *sql, s
" LEFT OUTER JOIN sys.\"comments\" cm ON s.\"id\" = cm.\"id\"\n"
" ORDER BY s.\"name\";\n"
"GRANT SELECT ON TABLE INFORMATION_SCHEMA.SCHEMATA TO PUBLIC
WITH GRANT OPTION;\n"
+
"CREATE VIEW INFORMATION_SCHEMA.TABLES AS SELECT\n"
" cast(NULL AS varchar(1)) AS TABLE_CATALOG,\n"
" s.\"name\" AS TABLE_SCHEMA,\n"
@@ -6077,6 +6080,7 @@ sql_update_default(Client c, mvc *sql, s
" LEFT OUTER JOIN (SELECT DISTINCT \"schema\", \"table\",
\"count\" FROM sys.\"statistics\"()) st ON (s.\"name\" = st.\"schema\" AND
t.\"name\" = st.\"table\")\n"
" ORDER BY s.\"name\", t.\"name\";\n"
"GRANT SELECT ON TABLE INFORMATION_SCHEMA.TABLES TO PUBLIC WITH
GRANT OPTION;\n"
+
"CREATE VIEW INFORMATION_SCHEMA.VIEWS AS SELECT\n"
" cast(NULL AS varchar(1)) AS TABLE_CATALOG,\n"
" s.\"name\" AS TABLE_SCHEMA,\n"
@@ -6100,6 +6104,7 @@ sql_update_default(Client c, mvc *sql, s
" WHERE t.\"type\" = 1\n"
" ORDER BY s.\"name\", t.\"name\";\n"
"GRANT SELECT ON TABLE INFORMATION_SCHEMA.VIEWS TO PUBLIC WITH
GRANT OPTION;\n"
+
"CREATE VIEW INFORMATION_SCHEMA.COLUMNS AS SELECT\n"
" cast(NULL AS varchar(1)) AS TABLE_CATALOG,\n"
" s.\"name\" AS TABLE_SCHEMA,\n"
@@ -6108,15 +6113,18 @@ sql_update_default(Client c, mvc *sql, s
" cast(c.\"number\" +1 AS int) AS ORDINAL_POSITION,\n"
" c.\"default\" AS COLUMN_DEFAULT,\n"
" cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') AS varchar(3))
AS IS_NULLABLE,\n"
- " c.\"type\" AS DATA_TYPE,\n"
+ " CASE c.\"type\" WHEN 'day_interval' THEN 'interval day' WHEN
'month_interval' THEN 'interval month' WHEN 'sec_interval' THEN 'interval
second' ELSE c.\"type\" END AS DATA_TYPE,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('varchar','clob','char','json','url','xml'), c.\"type_digits\", NULL) AS int)
AS CHARACTER_MAXIMUM_LENGTH,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('varchar','clob','char','json','url','xml'), c.\"type_digits\" * 3, NULL) AS
int) AS CHARACTER_OCTET_LENGTH,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
c.\"type_digits\", NULL) AS int) AS NUMERIC_PRECISION,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(c.\"type\" IN ('decimal','numeric'), 10, NULL)) AS int) AS
NUMERIC_PRECISION_RADIX,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
c.\"type_scale\", NULL) AS int) AS NUMERIC_SCALE,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('date','timestamp','timestamptz','time','timetz'), c.\"type_scale\" -1, NULL)
AS int) AS DATETIME_PRECISION,\n"
- " cast(CASE c.\"type\" WHEN 'day_interval' THEN 'interval day'
WHEN 'month_interval' THEN 'interval month' WHEN 'sec_interval' THEN 'interval
second' ELSE NULL END AS varchar(40)) AS INTERVAL_TYPE,\n"
- " cast(sys.ifthenelse(c.\"type\" IN
('day_interval','month_interval','sec_interval'), c.\"type_scale\" -1, NULL) AS
int) AS INTERVAL_PRECISION,\n"
+ " cast(CASE c.\"type\" WHEN 'day_interval' THEN 'interval day'
WHEN 'month_interval' THEN (CASE c.\"type_digits\" WHEN 1 THEN 'interval year'
WHEN 2 THEN 'interval year to month' WHEN 3 THEN 'interval month' ELSE NULL
END)"
+ " WHEN 'sec_interval' THEN (CASE c.\"type_digits\" WHEN 5 THEN
'interval day to hour' WHEN 6 THEN 'interval day to minute' WHEN 7 THEN
'interval day to second'"
+ " WHEN 8 THEN 'interval hour' WHEN 9 THEN 'interval hour to
minute' WHEN 10 THEN 'interval hour to second' WHEN 11 THEN 'interval minute'
WHEN 12 THEN 'interval minute to second'"
+ " WHEN 13 THEN 'interval second' ELSE NULL END) ELSE NULL END
AS varchar(40)) AS INTERVAL_TYPE,\n"
+ " cast(CASE c.\"type\" WHEN 'day_interval' THEN 0 WHEN
'month_interval' THEN 0 WHEN 'sec_interval' THEN
(sys.ifthenelse(c.\"type_digits\" IN (7, 10, 12, 13),
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\", 3), 0)) ELSE NULL END AS
int) AS INTERVAL_PRECISION,\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('varchar','clob','char','json','url','xml'), 'UTF-8', NULL) AS varchar(16)) AS
CHARACTER_SET_NAME,\n"
@@ -6163,10 +6171,70 @@ sql_update_default(Client c, mvc *sql, s
" LEFT OUTER JOIN sys.\"comments\" cm ON c.\"id\" = cm.\"id\"\n"
" ORDER BY s.\"name\", t.\"name\", c.\"number\";\n"
"GRANT SELECT ON TABLE INFORMATION_SCHEMA.COLUMNS TO PUBLIC
WITH GRANT OPTION;\n"
+
+ "CREATE VIEW INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS SELECT\n"
+ " cast(NULL AS varchar(1)) AS CONSTRAINT_CATALOG,\n"
+ " cast(NULL AS varchar(1024)) AS CONSTRAINT_SCHEMA,\n"
+ " cast(NULL AS varchar(1024)) AS CONSTRAINT_NAME,\n"
+ " cast(NULL AS varchar(1024)) AS CHECK_CLAUSE\n"
+ " WHERE 1=0;\n"
+ "GRANT SELECT ON TABLE INFORMATION_SCHEMA.CHECK_CONSTRAINTS TO
PUBLIC WITH GRANT OPTION;\n"
+
+ "CREATE VIEW INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS SELECT\n"
+ " cast(NULL AS varchar(1)) AS CONSTRAINT_CATALOG,\n"
+ " s.\"name\" AS CONSTRAINT_SCHEMA,\n"
+ " k.\"name\" AS CONSTRAINT_NAME,\n"
+ " cast(NULL AS varchar(1)) AS TABLE_CATALOG,\n"
+ " s.\"name\" AS TABLE_SCHEMA,\n"
+ " t.\"name\" AS TABLE_NAME,\n"
+ " cast(CASE k.\"type\" WHEN 0 THEN 'PRIMARY KEY' WHEN 1 THEN
'UNIQUE' WHEN 2 THEN 'FOREIGN KEY' ELSE NULL END AS varchar(16)) AS
CONSTRAINT_TYPE,\n"
+ " cast('NO' AS varchar(3)) AS IS_DEFERRABLE,\n"
+ " cast('NO' AS varchar(3)) AS INITIALLY_DEFERRED,\n"
+ " cast('YES' AS varchar(3)) AS ENFORCED,\n"
+ " -- MonetDB column extensions\n"
+ " t.\"schema_id\" AS schema_id,\n"
+ " t.\"id\" AS table_id,\n"
+ " k.\"id\" AS key_id,\n"
+ " k.\"type\" AS key_type,\n"
+ " t.\"system\" AS is_system\n"
+ " FROM (SELECT sk.\"id\", sk.\"table_id\", sk.\"name\",
sk.\"type\" FROM sys.\"keys\" sk UNION ALL SELECT tk.\"id\", tk.\"table_id\",
tk.\"name\", tk.\"type\" FROM tmp.\"keys\" tk) k\n"
+ " INNER JOIN (SELECT st.\"id\", st.\"schema_id\", st.\"name\",
st.\"system\" FROM sys.\"_tables\" st UNION ALL"
+ " SELECT tt.\"id\", tt.\"schema_id\", tt.\"name\",
tt.\"system\" FROM tmp.\"_tables\" tt) t ON k.\"table_id\" = t.\"id\"\n"
+ " INNER JOIN sys.\"schemas\" s ON t.\"schema_id\" = s.\"id\"\n"
+ " ORDER BY s.\"name\", t.\"name\", k.\"name\";\n"
+ "GRANT SELECT ON TABLE INFORMATION_SCHEMA.TABLE_CONSTRAINTS TO
PUBLIC WITH GRANT OPTION;\n"
+
+ "CREATE VIEW INFORMATION_SCHEMA.SEQUENCES AS SELECT\n"
+ " cast(NULL AS varchar(1)) AS SEQUENCE_CATALOG,\n"
+ " s.\"name\" AS SEQUENCE_SCHEMA,\n"
+ " sq.\"name\" AS SEQUENCE_NAME,\n"
+ " cast('bigint' AS varchar(16)) AS DATA_TYPE,\n"
+ " cast(64 AS SMALLINT) AS NUMERIC_PRECISION,\n"
+ " cast(2 AS SMALLINT) AS NUMERIC_PRECISION_RADIX,\n"
+ " cast(0 AS SMALLINT) AS NUMERIC_SCALE,\n"
+ " sq.\"start\" AS START_VALUE,\n"
+ " sq.\"minvalue\" AS MINIMUM_VALUE,\n"
+ " sq.\"maxvalue\" AS MAXIMUM_VALUE,\n"
+ " sq.\"increment\" AS INCREMENT,\n"
+ " cast(sys.ifthenelse(sq.\"cycle\", 'YES', 'NO') AS
varchar(3)) AS CYCLE_OPTION,\n"
+ " cast(NULL AS varchar(16)) AS DECLARED_DATA_TYPE,\n"
+ " cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_PRECISION,\n"
+ " cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_SCALE,\n"
+ " -- MonetDB column extensions\n"
+ " sq.\"schema_id\" AS schema_id,\n"
+ " sq.\"id\" AS sequence_id,\n"
+ " get_value_for(s.\"name\", sq.\"name\") AS current_value,\n"
+ " sq.\"cacheinc\" AS cacheinc,\n"
+ " cm.\"remark\" AS comments\n"
+ " FROM sys.\"sequences\" sq\n"
+ " INNER JOIN sys.\"schemas\" s ON sq.\"schema_id\" = s.\"id\"\n"
+ " LEFT OUTER JOIN sys.\"comments\" cm ON sq.\"id\" =
cm.\"id\"\n"
+ " ORDER BY s.\"name\", sq.\"name\";\n"
+ "GRANT SELECT ON TABLE INFORMATION_SCHEMA.SEQUENCES TO PUBLIC
WITH GRANT OPTION;\n"
"\n"
"update sys._tables set system = true where system <> true\n"
" and schema_id = (select s.id from sys.schemas s where s.name
= 'information_schema')\n"
- " and name in
('character_sets','schemata','tables','views','columns');\n";
+ " and name in
('character_sets','check_constraints','columns','schemata','sequences','table_constraints','tables','views');\n";
printf("Running database upgrade commands:\n%s\n", cmds);
fflush(stdout);
err = SQLstatementIntern(c, cmds, "update", true, false, NULL);
diff --git a/sql/scripts/91_information_schema.sql
b/sql/scripts/91_information_schema.sql
--- a/sql/scripts/91_information_schema.sql
+++ b/sql/scripts/91_information_schema.sql
@@ -19,8 +19,9 @@ CREATE SCHEMA INFORMATION_SCHEMA;
COMMENT ON SCHEMA INFORMATION_SCHEMA IS 'ISO/IEC 9075-11 SQL/Schemata';
-- The view CHARACTER_SETS identifies the character sets available in the
database.
--- Since MonetDB does not support multiple character sets within one database,
this
--- view only shows one encoding (UTF-8), which is the hardcoded database
encoding.
+-- MonetDB has a hardcoded character set encoding (UTF-8) for all character
data.
+-- It does not support multiple or alternative character sets, hence this view
+-- only shows one encoding: UTF-8.
CREATE VIEW INFORMATION_SCHEMA.CHARACTER_SETS AS SELECT
cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,
cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,
@@ -127,15 +128,15 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
cast(c."number" +1 AS int) AS ORDINAL_POSITION,
c."default" AS COLUMN_DEFAULT,
cast(sys.ifthenelse(c."null", 'YES', 'NO') AS varchar(3)) AS IS_NULLABLE,
- c."type" AS DATA_TYPE,
+ CASE c."type" WHEN 'day_interval' THEN 'interval day' WHEN 'month_interval'
THEN 'interval month' WHEN 'sec_interval' THEN 'interval second' ELSE c."type"
END AS DATA_TYPE,
cast(sys.ifthenelse(c."type" IN
('varchar','clob','char','json','url','xml'), c."type_digits", NULL) AS int) AS
CHARACTER_MAXIMUM_LENGTH,
cast(sys.ifthenelse(c."type" IN
('varchar','clob','char','json','url','xml'), c."type_digits" * 3, NULL) AS
int) AS CHARACTER_OCTET_LENGTH,
cast(sys.ifthenelse(c."type" IN
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
c."type_digits", NULL) AS int) AS NUMERIC_PRECISION,
cast(sys.ifthenelse(c."type" IN
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(c."type" IN ('decimal','numeric'), 10, NULL)) AS int) AS
NUMERIC_PRECISION_RADIX,
cast(sys.ifthenelse(c."type" IN
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
c."type_scale", NULL) AS int) AS NUMERIC_SCALE,
cast(sys.ifthenelse(c."type" IN
('date','timestamp','timestamptz','time','timetz'), c."type_scale" -1, NULL) AS
int) AS DATETIME_PRECISION,
- cast(CASE c."type" WHEN 'day_interval' THEN 'interval day' WHEN
'month_interval' THEN 'interval month' WHEN 'sec_interval' THEN 'interval
second' ELSE NULL END AS varchar(40)) AS INTERVAL_TYPE,
- cast(sys.ifthenelse(c."type" IN
('day_interval','month_interval','sec_interval'), c."type_scale" -1, NULL) AS
int) AS INTERVAL_PRECISION,
+ cast(CASE c."type" WHEN 'day_interval' THEN 'interval day' WHEN
'month_interval' THEN (CASE c."type_digits" WHEN 1 THEN 'interval year' WHEN 2
THEN 'interval year to month' WHEN 3 THEN 'interval month' ELSE NULL END) WHEN
'sec_interval' THEN (CASE c."type_digits" WHEN 5 THEN 'interval day to hour'
WHEN 6 THEN 'interval day to minute' WHEN 7 THEN 'interval day to second' WHEN
8 THEN 'interval hour' WHEN 9 THEN 'interval hour to minute' WHEN 10 THEN
'interval hour to second' WHEN 11 THEN 'interval minute' WHEN 12 THEN 'interval
minute to second' WHEN 13 THEN 'interval second' ELSE NULL END) ELSE NULL END
AS varchar(40)) AS INTERVAL_TYPE,
+ cast(CASE c."type" WHEN 'day_interval' THEN 0 WHEN 'month_interval' THEN 0
WHEN 'sec_interval' THEN (sys.ifthenelse(c."type_digits" IN (7, 10, 12, 13),
sys.ifthenelse(c."type_scale" > 0, c."type_scale", 3), 0)) ELSE NULL END AS
int) AS INTERVAL_PRECISION,
cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,
cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,
cast(sys.ifthenelse(c."type" IN
('varchar','clob','char','json','url','xml'), 'UTF-8', NULL) AS varchar(16)) AS
CHARACTER_SET_NAME,
@@ -184,3 +185,73 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
GRANT SELECT ON TABLE INFORMATION_SCHEMA.COLUMNS TO PUBLIC WITH GRANT OPTION;
+-- The view CHECK_CONSTRAINTS contains all check constraints defined on a
table,
+-- that are owned by a currently enabled role.
+-- This view is currently empty as MonetDB doesn't support CHECK constraints
yet.
+CREATE VIEW INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS SELECT
+ cast(NULL AS varchar(1)) AS CONSTRAINT_CATALOG,
+ cast(NULL AS varchar(1024)) AS CONSTRAINT_SCHEMA,
+ cast(NULL AS varchar(1024)) AS CONSTRAINT_NAME,
+ cast(NULL AS varchar(1024)) AS CHECK_CLAUSE
+ WHERE 1=0;
+
+GRANT SELECT ON TABLE INFORMATION_SCHEMA.CHECK_CONSTRAINTS TO PUBLIC WITH
GRANT OPTION;
+
+-- The view TABLE_CONSTRAINTS contains all constraints belonging to tables
+-- that the current user owns or has some privilege other than SELECT on.
+CREATE VIEW INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS SELECT
+ cast(NULL AS varchar(1)) AS CONSTRAINT_CATALOG,
+ s."name" AS CONSTRAINT_SCHEMA,
+ k."name" AS CONSTRAINT_NAME,
+ cast(NULL AS varchar(1)) AS TABLE_CATALOG,
+ s."name" AS TABLE_SCHEMA,
+ t."name" AS TABLE_NAME,
+ cast(CASE k."type" WHEN 0 THEN 'PRIMARY KEY' WHEN 1 THEN 'UNIQUE' WHEN 2
THEN 'FOREIGN KEY' ELSE NULL END AS varchar(16)) AS CONSTRAINT_TYPE,
+ cast('NO' AS varchar(3)) AS IS_DEFERRABLE,
+ cast('NO' AS varchar(3)) AS INITIALLY_DEFERRED,
+ cast('YES' AS varchar(3)) AS ENFORCED,
+ -- MonetDB column extensions
+ t."schema_id" AS schema_id,
+ t."id" AS table_id,
+ k."id" AS key_id,
+ k."type" AS key_type,
+ t."system" AS is_system
+ FROM (SELECT sk."id", sk."table_id", sk."name", sk."type" FROM sys."keys" sk
UNION ALL SELECT tk."id", tk."table_id", tk."name", tk."type" FROM tmp."keys"
tk) k
+ INNER JOIN (SELECT st."id", st."schema_id", st."name", st."system" FROM
sys."_tables" st UNION ALL SELECT tt."id", tt."schema_id", tt."name",
tt."system" FROM tmp."_tables" tt) t ON k."table_id" = t."id"
+ INNER JOIN sys."schemas" s ON t."schema_id" = s."id"
+ ORDER BY s."name", t."name", k."name";
+
+GRANT SELECT ON TABLE INFORMATION_SCHEMA.TABLE_CONSTRAINTS TO PUBLIC WITH
GRANT OPTION;
+
+-- The view SEQUENCES contains all sequences defined in the current database.
+-- Only those sequences are shown that the current user has access to
+-- (by way of being the owner or having some privilege).
+CREATE VIEW INFORMATION_SCHEMA.SEQUENCES AS SELECT
+ cast(NULL AS varchar(1)) AS SEQUENCE_CATALOG,
+ s."name" AS SEQUENCE_SCHEMA,
+ sq."name" AS SEQUENCE_NAME,
+ cast('bigint' AS varchar(16)) AS DATA_TYPE,
+ cast(64 AS SMALLINT) AS NUMERIC_PRECISION,
+ cast(2 AS SMALLINT) AS NUMERIC_PRECISION_RADIX,
+ cast(0 AS SMALLINT) AS NUMERIC_SCALE,
+ sq."start" AS START_VALUE,
+ sq."minvalue" AS MINIMUM_VALUE,
+ sq."maxvalue" AS MAXIMUM_VALUE,
+ sq."increment" AS INCREMENT,
+ cast(sys.ifthenelse(sq."cycle", 'YES', 'NO') AS varchar(3)) AS CYCLE_OPTION,
+ cast(NULL AS varchar(16)) AS DECLARED_DATA_TYPE,
+ cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_PRECISION,
+ cast(NULL AS SMALLINT) AS DECLARED_NUMERIC_SCALE,
+ -- MonetDB column extensions
+ sq."schema_id" AS schema_id,
+ sq."id" AS sequence_id,
+ get_value_for(s."name", sq."name") AS current_value,
+ sq."cacheinc" AS cacheinc,
+ cm."remark" AS comments
+ FROM sys."sequences" sq
+ INNER JOIN sys."schemas" s ON sq."schema_id" = s."id"
+ LEFT OUTER JOIN sys."comments" cm ON sq."id" = cm."id"
+ ORDER BY s."name", sq."name";
+
+GRANT SELECT ON TABLE INFORMATION_SCHEMA.SEQUENCES TO PUBLIC WITH GRANT OPTION;
+
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]