Changeset: ee3131e9b0c7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ee3131e9b0c7
Modified Files:
sql/backends/monet5/sql_upgrades.c
sql/scripts/91_information_schema.sql
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/information-schema/Tests/columns.test
Branch: Dec2023
Log Message:
Correct the overflow problem with CHARACTER_OCTET_LENGTH in a better way. We
now cast the computed value to bigint instead of int.
diffs (255 lines):
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
@@ -6231,7 +6231,7 @@ sql_update_dec2023(Client c, mvc *sql, s
" cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') AS varchar(3))
AS IS_NULLABLE,\n"
" cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\",
c.\"type_scale\", true, true) AS varchar(1024)) AS DATA_TYPE,\n"
" cast(sys.ifthenelse(c.\"type\" IN
('varchar','clob','char','json','url','xml') AND c.\"type_digits\" > 0,
c.\"type_digits\", NULL) AS int) AS CHARACTER_MAXIMUM_LENGTH,\n"
- " cast(sys.ifthenelse(c.\"type\" IN
('varchar','clob','char','json','url','xml') AND c.\"type_digits\" > 0,
sys.sql_min(4 * c.\"type_digits\", 2147483647), NULL) AS int) AS
CHARACTER_OCTET_LENGTH,\n"
+ " cast(sys.ifthenelse(c.\"type\" IN
('varchar','clob','char','json','url','xml') AND c.\"type_digits\" > 0, 4 *
c.\"type_digits\", NULL) AS bigint) 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"
@@ -6360,7 +6360,7 @@ sql_update_dec2023(Client c, mvc *sql, s
" cast(NULL AS varchar(1)) AS UDT_NAME,\n"
" cast(CASE f.\"type\" WHEN 1 THEN
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true) WHEN 2 THEN NULL WHEN 5 THEN 'TABLE' WHEN 7 THEN 'TABLE' ELSE NULL END AS
varchar(1024)) AS DATA_TYPE,\n"
" cast(sys.ifthenelse(a.\"type\" IN
('varchar','clob','char','json','url','xml') AND a.\"type_digits\" > 0,
a.\"type_digits\", NULL) AS int) AS CHARACTER_MAXIMUM_LENGTH,\n"
- " cast(sys.ifthenelse(a.\"type\" IN
('varchar','clob','char','json','url','xml') AND a.\"type_digits\" > 0,
sys.sql_min(4 * a.\"type_digits\", 2147483647), NULL) AS int) AS
CHARACTER_OCTET_LENGTH,\n"
+ " cast(sys.ifthenelse(a.\"type\" IN
('varchar','clob','char','json','url','xml') AND a.\"type_digits\" > 0, 4 *
a.\"type_digits\", NULL) AS bigint) AS CHARACTER_OCTET_LENGTH,\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,\n"
" 'UTF-8' AS CHARACTER_SET_NAME,\n"
@@ -6466,7 +6466,7 @@ sql_update_dec2023(Client c, mvc *sql, s
" cast(NULL AS varchar(1)) AS TO_SQL_SPECIFIC_NAME,\n"
" cast(sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\",
a.\"type_scale\", true, true) AS varchar(1024)) AS DATA_TYPE,\n"
" cast(sys.ifthenelse(a.\"type\" IN
('varchar','clob','char','json','url','xml') AND a.\"type_digits\" > 0,
a.\"type_digits\", NULL) AS int) AS CHARACTER_MAXIMUM_LENGTH,\n"
- " cast(sys.ifthenelse(a.\"type\" IN
('varchar','clob','char','json','url','xml') AND a.\"type_digits\" > 0,
sys.sql_min(4 * a.\"type_digits\", 2147483647), NULL) AS int) AS
CHARACTER_OCTET_LENGTH,\n"
+ " cast(sys.ifthenelse(a.\"type\" IN
('varchar','clob','char','json','url','xml') AND a.\"type_digits\" > 0, 4 *
a.\"type_digits\", NULL) AS bigint) AS CHARACTER_OCTET_LENGTH,\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,\n"
" cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,\n"
" cast(sys.ifthenelse(a.\"type\" IN
('varchar','clob','char','json','url','xml'), 'UTF-8', NULL) AS varchar(16)) AS
CHARACTER_SET_NAME,\n"
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
@@ -131,7 +131,7 @@ CREATE VIEW INFORMATION_SCHEMA.COLUMNS A
cast(sys.ifthenelse(c."null", 'YES', 'NO') AS varchar(3)) AS IS_NULLABLE,
cast(sys."sql_datatype"(c."type", c."type_digits", c."type_scale", true,
true) AS varchar(1024)) AS DATA_TYPE,
cast(sys.ifthenelse(c."type" IN ('varchar','clob','char','json','url','xml')
AND c."type_digits" > 0, c."type_digits", NULL) AS int) AS
CHARACTER_MAXIMUM_LENGTH,
- cast(sys.ifthenelse(c."type" IN ('varchar','clob','char','json','url','xml')
AND c."type_digits" > 0, sys.sql_min(4 * c."type_digits", 2147483647), NULL) AS
int) AS CHARACTER_OCTET_LENGTH,
+ cast(sys.ifthenelse(c."type" IN ('varchar','clob','char','json','url','xml')
AND c."type_digits" > 0, 4 * c."type_digits", NULL) AS bigint) 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,
@@ -277,7 +277,7 @@ CREATE VIEW INFORMATION_SCHEMA.ROUTINES
cast(NULL AS varchar(1)) AS UDT_NAME,
cast(CASE f."type" WHEN 1 THEN sys."sql_datatype"(a."type", a."type_digits",
a."type_scale", true, true) WHEN 2 THEN NULL WHEN 5 THEN 'TABLE' WHEN 7 THEN
'TABLE' ELSE NULL END AS varchar(1024)) AS DATA_TYPE,
cast(sys.ifthenelse(a."type" IN ('varchar','clob','char','json','url','xml')
AND a."type_digits" > 0, a."type_digits", NULL) AS int) AS
CHARACTER_MAXIMUM_LENGTH,
- cast(sys.ifthenelse(a."type" IN ('varchar','clob','char','json','url','xml')
AND a."type_digits" > 0, sys.sql_min(4 * a."type_digits", 2147483647), NULL) AS
int) AS CHARACTER_OCTET_LENGTH,
+ cast(sys.ifthenelse(a."type" IN ('varchar','clob','char','json','url','xml')
AND a."type_digits" > 0, 4 * a."type_digits", NULL) AS bigint) AS
CHARACTER_OCTET_LENGTH,
cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,
cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,
'UTF-8' AS CHARACTER_SET_NAME,
@@ -389,7 +389,7 @@ CREATE VIEW INFORMATION_SCHEMA.PARAMETER
cast(NULL AS varchar(1)) AS TO_SQL_SPECIFIC_NAME,
cast(sys."sql_datatype"(a."type", a."type_digits", a."type_scale", true,
true) AS varchar(1024)) AS DATA_TYPE,
cast(sys.ifthenelse(a."type" IN ('varchar','clob','char','json','url','xml')
AND a."type_digits" > 0, a."type_digits", NULL) AS int) AS
CHARACTER_MAXIMUM_LENGTH,
- cast(sys.ifthenelse(a."type" IN ('varchar','clob','char','json','url','xml')
AND a."type_digits" > 0, sys.sql_min(4 * a."type_digits", 2147483647), NULL) AS
int) AS CHARACTER_OCTET_LENGTH,
+ cast(sys.ifthenelse(a."type" IN ('varchar','clob','char','json','url','xml')
AND a."type_digits" > 0, 4 * a."type_digits", NULL) AS bigint) AS
CHARACTER_OCTET_LENGTH,
cast(NULL AS varchar(1)) AS CHARACTER_SET_CATALOG,
cast(NULL AS varchar(1)) AS CHARACTER_SET_SCHEMA,
cast(sys.ifthenelse(a."type" IN
('varchar','clob','char','json','url','xml'), 'UTF-8', NULL) AS varchar(16)) AS
CHARACTER_SET_NAME,
diff --git a/sql/test/emptydb/Tests/check.stable.out
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -444,13 +444,13 @@ select 'null in fkeys.delete_action', de
% .%25, .s, .t, ., ., .t, ., ., . #
table_name
% %25, name, name, query, type, system, commit_action, access, comment
# name
% char, varchar, varchar, clob, varchar,
boolean, char, char, varchar # type
-% 11, 18, 34, 6818, 5, 5, 8, 10, 0 # length
+% 11, 18, 34, 6796, 5, 5, 8, 10, 0 # length
[ "sys._tables", "information_schema", "character_sets", "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,
cast('UTF-8' as varchar(16)) as character_set_name, cast('ISO/IEC 10646:2021'
as varchar(20)) as character_repertoire, cast('UTF-8' as varchar(16)) as
form_of_use, cast(null as varchar(1)) as default_collate_catalog, cast(null as
varchar(1)) as default_collate_schema, cast(null as varchar(1)) as
default_collate_name;", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
[ "sys._tables", "information_schema", "check_constraints", "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;", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
-[ "sys._tables", "information_schema", "columns", "create view
information_schema.columns as select cast(null as varchar(1)) as table_catalog,
s.\"name\" as table_schema, t.\"name\" as table_name, c.\"name\" as
column_name, cast(1 + c.\"number\" as int) as ordinal_position, c.\"default\"
as column_default, cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') as varchar(3))
as is_nullable, cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\",
c.\"type_scale\", true, true) as varchar(1024)) as data_type,
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml')
and c.\"type_digits\" > 0, c.\"type_digits\", null) as int) as
character_maximum_length, cast(sys.ifthenelse(c.\"type\" in
('varchar','clob','char','json','url','xml') and c.\"type_digits\" > 0,
sys.sql_min(4 * c.\"type_digits\", 2147483647), 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'),
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(c.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\", c.\"type_scale\", true,
true), null) 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, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(null as varchar(1)) as domain_catalog,
cast(null as varchar(1)) as domain_schema, cast(null as varchar(1)) as
domain_name, cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1))
as udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1))
as scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast('NO' as varchar(3)) as
is_self_referencing, cast
(sys.ifthenelse(seq.\"name\" is null or c.\"null\", 'NO', 'YES') as
varchar(3)) as is_identity, seq.\"name\" as identity_generation, seq.\"start\"
as identity_start, seq.\"increment\" as identity_increment, seq.\"maxvalue\" as
identity_maximum, seq.\"minvalue\" as identity_minimum,
cast(sys.ifthenelse(seq.\"name\" is null, null, sys.ifthenelse(seq.\"cycle\",
'YES', 'NO')) as varchar(3)) as identity_cycle,
cast(sys.ifthenelse(seq.\"name\" is null, 'NO', 'YES') as varchar(3)) as
is_generated, cast(sys.ifthenelse(seq.\"name\" is null, null, c.\"default\") as
varchar(1024)) as generation_expression, cast('NO' as varchar(3)) as
is_system_time_period_start, cast('NO' as varchar(3)) as
is_system_time_period_end, cast('NO' as varchar(3)) as
system_time_period_timestamp_generation, cast(sys.ifthenelse(t.\"type\" in
(0,3,7,20,30), 'YES', 'NO') as varchar(3)) as is_updatable, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as d
eclared_numeric_scale, t.\"schema_id\" as schema_id, c.\"table_id\" as
table_id, c.\"id\" as column_id, seq.\"id\" as sequence_id, t.\"system\" as
is_system, cm.\"remark\" as comments from sys.\"columns\" c inner join
sys.\"tables\" t on c.\"table_id\" = t.\"id\" inner join sys.\"schemas\" s on
t.\"schema_id\" = s.\"id\" left outer join sys.\"comments\" cm on c.\"id\" =
cm.\"id\" left outer join sys.\"sequences\" seq on ((seq.\"name\"||'\"') =
substring(c.\"default\", 3 + sys.\"locate\"('\".\"seq_',c.\"default\",14)))
order by s.\"name\", t.\"name\", c.\"number\";", "VIEW", true, "COMMIT",
"WRITABLE", NULL ]
-[ "sys._tables", "information_schema", "parameters", "create view
information_schema.parameters as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(sys.ifthenelse((a.\"inout\" = 0 or f.\"type\" = 2), 1 + a.\"number\",
sys.ifthenelse(f.\"type\" = 1, a.\"number\", (1 + a.\"number\" -
f.count_out_cols))) as int) as ordinal_position,
cast(sys.ifthenelse(a.\"inout\" = 0, 'OUT', sys.ifthenelse(a.\"inout\" = 1,
'IN', 'INOUT')) as varchar(5)) as parameter_mode,
cast(sys.ifthenelse(a.\"inout\" = 0, 'YES', 'NO') as varchar(3)) as is_result,
cast(null as varchar(1)) as as_locator, a.\"name\" as parameter_name, cast(null
as varchar(1)) as from_sql_specific_catalog, cast(null as varchar(1)) as
from_sql_specific_schema, cast(null as varchar(1)) as from_sql_specific_name,
cast(null as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1))
as to_sql_specific_schema, cast(null as
varchar(1)) as to_sql_specific_name, cast(sys.\"sql_datatype\"(a.\"type\",
a.\"type_digits\", a.\"type_scale\", true, true) as varchar(1024)) as
data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", null) as int) as character_maximum_length,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml')
and a.\"type_digits\" > 0, sys.sql_min(4 * a.\"type_digits\", 2147483647),
null) as int) as character_octet_length, cast(null as varchar(1)) as
character_set_catalog, cast(null as varchar(1)) as character_set_schema,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml'),
'UTF-8', null) as varchar(16)) as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','
decimal','numeric','oid'), a.\"type_digits\", null) as int) as
numeric_precision, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"typ
e_digits\" in (7, 10, 12, 13), sys.ifthenelse(a.\"type_scale\" > 0,
a.\"type_scale\", 3), 0)) else null end as int) as interval_precision,
cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1)) as
udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1)) as
scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast(null as varchar(1)) as
declared_data_type, cast(null as int) as declared_numeric_precision, cast(null
as int) as declared_numeric_scale, cast(null as varchar(1)) as
parameter_default, f.\"schema_id\" as schema_id, f.\"id\" as function_id,
a.\"id\" as arg_id, f.\"name\" as function_name, f.\"type\" as function_type,
f.\"system\" as is_system from sys.\"args\" a inner join (select fun.*, (select
count(*) from sys.args a0 where a0.inout = 0 and a0.func_id = fun.id) as
count_out_cols from sys.\"functions\" fun where fun.\
"type\" in (1, 2, 5, 7)) f on f.\"id\" = a.\"func_id\" inner join
sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" order by s.\"name\",
f.\"name\", f.\"id\", a.\"inout\" desc, a.\"number\";", "VIEW", true,
"COMMIT", "WRITABLE", NULL ]
+[ "sys._tables", "information_schema", "columns", "create view
information_schema.columns as select cast(null as varchar(1)) as table_catalog,
s.\"name\" as table_schema, t.\"name\" as table_name, c.\"name\" as
column_name, cast(1 + c.\"number\" as int) as ordinal_position, c.\"default\"
as column_default, cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') as varchar(3))
as is_nullable, cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\",
c.\"type_scale\", true, true) as varchar(1024)) as data_type,
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml')
and c.\"type_digits\" > 0, c.\"type_digits\", null) as int) as
character_maximum_length, cast(sys.ifthenelse(c.\"type\" in
('varchar','clob','char','json','url','xml') and c.\"type_digits\" > 0, 4 *
c.\"type_digits\", null) as bigint) as character_octet_length,
cast(sys.ifthenelse(c.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
c.\"type_digits\", n
ull) 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'),
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(c.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\", c.\"type_scale\", true,
true), null) 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, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(null as varchar(1)) as domain_catalog,
cast(null as varchar(1)) as domain_schema, cast(null as varchar(1)) as
domain_name, cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1))
as udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1))
as scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast('NO' as varchar(3)) as
is_self_referencing, cast(sys.ifthenelse(seq.\"
name\" is null or c.\"null\", 'NO', 'YES') as varchar(3)) as is_identity,
seq.\"name\" as identity_generation, seq.\"start\" as identity_start,
seq.\"increment\" as identity_increment, seq.\"maxvalue\" as identity_maximum,
seq.\"minvalue\" as identity_minimum, cast(sys.ifthenelse(seq.\"name\" is null,
null, sys.ifthenelse(seq.\"cycle\", 'YES', 'NO')) as varchar(3)) as
identity_cycle, cast(sys.ifthenelse(seq.\"name\" is null, 'NO', 'YES') as
varchar(3)) as is_generated, cast(sys.ifthenelse(seq.\"name\" is null, null,
c.\"default\") as varchar(1024)) as generation_expression, cast('NO' as
varchar(3)) as is_system_time_period_start, cast('NO' as varchar(3)) as
is_system_time_period_end, cast('NO' as varchar(3)) as
system_time_period_timestamp_generation, cast(sys.ifthenelse(t.\"type\" in
(0,3,7,20,30), 'YES', 'NO') as varchar(3)) as is_updatable, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
t.\"schema_id\" as schema_id, c.\"table_id\" as table_id, c.\"id\" as
column_id, seq.\"id\" as sequence_id, t.\"system\" as is_system, cm.\"remark\"
as comments from sys.\"columns\" c inner join sys.\"tables\" t on
c.\"table_id\" = t.\"id\" inner join sys.\"schemas\" s on t.\"schema_id\" =
s.\"id\" left outer join sys.\"comments\" cm on c.\"id\" = cm.\"id\" left outer
join sys.\"sequences\" seq on ((seq.\"name\"||'\"') = substring(c.\"default\",
3 + sys.\"locate\"('\".\"seq_',c.\"default\",14))) order by s.\"name\",
t.\"name\", c.\"number\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
+[ "sys._tables", "information_schema", "parameters", "create view
information_schema.parameters as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(sys.ifthenelse((a.\"inout\" = 0 or f.\"type\" = 2), 1 + a.\"number\",
sys.ifthenelse(f.\"type\" = 1, a.\"number\", (1 + a.\"number\" -
f.count_out_cols))) as int) as ordinal_position,
cast(sys.ifthenelse(a.\"inout\" = 0, 'OUT', sys.ifthenelse(a.\"inout\" = 1,
'IN', 'INOUT')) as varchar(5)) as parameter_mode,
cast(sys.ifthenelse(a.\"inout\" = 0, 'YES', 'NO') as varchar(3)) as is_result,
cast(null as varchar(1)) as as_locator, a.\"name\" as parameter_name, cast(null
as varchar(1)) as from_sql_specific_catalog, cast(null as varchar(1)) as
from_sql_specific_schema, cast(null as varchar(1)) as from_sql_specific_name,
cast(null as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1))
as to_sql_specific_schema, cast(null as
varchar(1)) as to_sql_specific_name, cast(sys.\"sql_datatype\"(a.\"type\",
a.\"type_digits\", a.\"type_scale\", true, true) as varchar(1024)) as
data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", null) as int) as character_maximum_length,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml')
and a.\"type_digits\" > 0, 4 * a.\"type_digits\", null) as bigint) as
character_octet_length, cast(null as varchar(1)) as character_set_catalog,
cast(null as varchar(1)) as character_set_schema,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml'),
'UTF-8', null) as varchar(16)) as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oi
d'), a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10,
12, 13), sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else
null end as int) as interval_precision, cast(null as varchar(1)) as
udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null as varchar(1))
as udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum_cardinality, cast(null as varchar(1)) as dtd_identifier,
cast(null as varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
cast(null as varchar(1)) as parameter_default, f.\"schema_id\" as schema_id,
f.\"id\" as function_id, a.\"id\" as arg_id, f.\"name\" as function_name,
f.\"type\" as function_type, f.\"system\" as is_system from sys.\"args\" a
inner join (select fun.*, (select count(*) from sys.args a0 where a0.inout = 0
and a0.func_id = fun.id) as count_out_cols from sys.\"functions\" fun where
fun.\"type\" in (1, 2, 5, 7
)) f on f.\"id\" = a.\"func_id\" inner join sys.\"schemas\" s on s.\"id\" =
f.\"schema_id\" order by s.\"name\", f.\"name\", f.\"id\", a.\"inout\" desc,
a.\"number\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "referential_constraints",
"create view information_schema.referential_constraints as select cast(null as
varchar(1)) as constraint_catalog, s.\"name\" as constraint_schema, fk.\"name\"
as constraint_name, cast(null as varchar(1)) as unique_constraint_catalog,
uks.\"name\" as unique_constraint_schema, uk.\"name\" as
unique_constraint_name, cast('FULL' as varchar(7)) as match_option,
fk.\"update_action\" as update_rule, fk.\"delete_action\" as delete_rule,
t.\"schema_id\" as fk_schema_id, t.\"id\" as fk_table_id, t.\"name\" as
fk_table_name, fk.\"id\" as fk_key_id, ukt.\"schema_id\" as uc_schema_id,
uk.\"table_id\" as uc_table_id, ukt.\"name\" as uc_table_name, uk.\"id\" as
uc_key_id from sys.\"fkeys\" fk inner join sys.\"tables\" t on t.\"id\" =
fk.\"table_id\" inner join sys.\"schemas\" s on s.\"id\" = t.\"schema_id\" left
outer join sys.\"keys\" uk on uk.\"id\" = fk.\"rkey\" left outer join
sys.\"tables\" ukt on ukt.\"id\" = uk.\"table_id\" l
eft outer join sys.\"schemas\" uks on uks.\"id\" = ukt.\"schema_id\" order by
s.\"name\", t.\"name\", fk.\"name\";", "VIEW", true, "COMMIT",
"WRITABLE", NULL ]
-[ "sys._tables", "information_schema", "routines", "create view
information_schema.routines as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(null as varchar(1)) as routine_catalog, s.\"name\" as routine_schema,
f.\"name\" as routine_name, ft.\"function_type_keyword\" as routine_type,
cast(null as varchar(1)) as module_catalog, cast(null as varchar(1)) as
module_schema, cast(f.\"mod\" as varchar(128)) as module_name, cast(null as
varchar(1)) as udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null
as varchar(1)) as udt_name, cast(case f.\"type\" when 1 then
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true) when 2 then null when 5 then 'TABLE' when 7 then 'TABLE' else null end as
varchar(1024)) as data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", n
ull) as int) as character_maximum_length, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
sys.sql_min(4 * a.\"type_digits\", 2147483647), null) as int) as
character_octet_length, cast(null as varchar(1)) as character_set_catalog,
cast(null as varchar(1)) as character_set_schema, 'UTF-8' as
character_set_name, cast(null as varchar(1)) as collation_catalog, cast(null as
varchar(1)) as collation_schema, cast(null as varchar(1)) as collation_name,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float'
,'real','double','decimal','numeric','oid'), a.\"type_scale\", null) as int)
as numeric_scale, cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'), a.\"type_scale\" -1, null)
as int) as datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10, 12, 13),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else null end as
int) as interval_precision, cast(null as varchar(1)) as type_udt_catalog,
cast(null as varchar(1)) as type_udt_schema, cast(null as varchar(1)) as
type_udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum
_cardinality, cast(null as int) as dtd_identifier,
cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\"))), null) as varchar(8196)) as routine_body,
f.\"func\" as routine_definition,
cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external
name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 +
sys.\"locate\"('external name',f.\"func\"))), null) as varchar(1024)) as
external_name, fl.\"language_keyword\" as external_language, 'GENERAL' as
parameter_style, 'YES' as is_deterministic, cast(
sys.ifthenelse(f.\"side_effect\", 'MODIFIES', 'READ') as varchar(10)) as
sql_data_access, cast(case f.\"type\" when 2 then null else 'NO' end as
varchar(3)) as is_null_call, cast(null as varchar(1)) as sql_path, cast(null as
varchar(1)) as schema_level_routine, cast(null as int) as
max_dynamic_result_sets, cast(null as varchar(1)) as is_user_defined_cast,
cast(null as varchar(1)) as is_implicitly_invocable, cast(null as varchar(1))
as security_type, cast(null as varchar(1)) as to_sql_specific_catalog,
cast(null as varchar(1)) as to_sql_specific_schema, cast(null as varchar(1)) as
to_sql_specific_name, cast(null as varchar(1)) as as_locator, cast(null as
timestamp) as created, cast(null as timestamp) as last_altered, cast(null as
varchar(1)) as new_savepoint_level, cast(null as varchar(1)) as
is_udt_dependent, cast(null as varchar(1)) as result_cast_from_data_type,
cast(null as varchar(1)) as result_cast_as_locator, cast(null as int) as
result_cast_char_max_length, cast(null as int)
as result_cast_char_octet_length, cast(null as varchar(1)) as
result_cast_char_set_catalog, cast(null as varchar(1)) as
result_cast_char_set_schema, cast(null as varchar(1)) as
result_cast_character_set_name, cast(null as varchar(1)) as
result_cast_collation_catalog, cast(null as varchar(1)) as
result_cast_collation_schema, cast(null as varchar(1)) as
result_cast_collation_name, cast(null as int) as result_cast_numeric_precision,
cast(null as int) as result_cast_numeric_radix, cast(null as int) as
result_cast_numeric_scale, cast(null as int) as result_cast_datetime_precision,
cast(null as varchar(1)) as result_cast_interval_type, cast(null as int) as
result_cast_interval_precision, cast(null as varchar(1)) as
result_cast_type_udt_catalog, cast(null as varchar(1)) as
result_cast_type_udt_schema, cast(null as varchar(1)) as
result_cast_type_udt_name, cast(null as varchar(1)) as
result_cast_scope_catalog, cast(null as varchar(1)) as
result_cast_scope_schema, cast(null as varchar(1)) as
result_cast_scope_name, cast(null as int) as result_cast_max_cardinality,
cast(null as varchar(1)) as result_cast_dtd_identifier, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
cast(null as varchar(1)) as result_cast_from_declared_data_type, cast(null as
int) as result_cast_declared_numeric_precision, cast(null as int) as
result_cast_declared_numeric_scale, f.\"schema_id\" as schema_id, f.\"id\" as
function_id, f.\"type\" as function_type, f.\"language\" as function_language,
f.\"system\" as is_system, cm.\"remark\" as comments from sys.\"functions\" f
inner join sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" inner join
sys.\"function_types\" ft on ft.\"function_type_id\" = f.\"type\" inner join
sys.\"function_languages\" fl on fl.\"language_id\" = f.\"language\" left outer
join sys.\"args\" a on a.\"func_id\" = f.\"id\" and a.\"inout\" = 0 and
a.\"number\" = 0 left outer join sys.\"comm
ents\" cm on cm.\"id\" = f.\"id\" where f.\"type\" in (1, 2, 5, 7) order by
s.\"name\", f.\"name\";", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
+[ "sys._tables", "information_schema", "routines", "create view
information_schema.routines as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(null as varchar(1)) as routine_catalog, s.\"name\" as routine_schema,
f.\"name\" as routine_name, ft.\"function_type_keyword\" as routine_type,
cast(null as varchar(1)) as module_catalog, cast(null as varchar(1)) as
module_schema, cast(f.\"mod\" as varchar(128)) as module_name, cast(null as
varchar(1)) as udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null
as varchar(1)) as udt_name, cast(case f.\"type\" when 1 then
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true) when 2 then null when 5 then 'TABLE' when 7 then 'TABLE' else null end as
varchar(1024)) as data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", n
ull) as int) as character_maximum_length, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0, 4 *
a.\"type_digits\", null) as bigint) as character_octet_length, cast(null as
varchar(1)) as character_set_catalog, cast(null as varchar(1)) as
character_set_schema, 'UTF-8' as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','deci
mal','numeric','oid'), a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'), a.\"type_scale\" -1, null)
as int) as datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10, 12, 13),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else null end as
int) as interval_precision, cast(null as varchar(1)) as type_udt_catalog,
cast(null as varchar(1)) as type_udt_schema, cast(null as varchar(1)) as
type_udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum_cardinality, cast(nul
l as int) as dtd_identifier,
cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\"))), null) as varchar(8196)) as routine_body,
f.\"func\" as routine_definition,
cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external
name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 +
sys.\"locate\"('external name',f.\"func\"))), null) as varchar(1024)) as
external_name, fl.\"language_keyword\" as external_language, 'GENERAL' as
parameter_style, 'YES' as is_deterministic, cast(sys.ifthenelse(f.\"sid
e_effect\", 'MODIFIES', 'READ') as varchar(10)) as sql_data_access, cast(case
f.\"type\" when 2 then null else 'NO' end as varchar(3)) as is_null_call,
cast(null as varchar(1)) as sql_path, cast(null as varchar(1)) as
schema_level_routine, cast(null as int) as max_dynamic_result_sets, cast(null
as varchar(1)) as is_user_defined_cast, cast(null as varchar(1)) as
is_implicitly_invocable, cast(null as varchar(1)) as security_type, cast(null
as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1)) as
to_sql_specific_schema, cast(null as varchar(1)) as to_sql_specific_name,
cast(null as varchar(1)) as as_locator, cast(null as timestamp) as created,
cast(null as timestamp) as last_altered, cast(null as varchar(1)) as
new_savepoint_level, cast(null as varchar(1)) as is_udt_dependent, cast(null as
varchar(1)) as result_cast_from_data_type, cast(null as varchar(1)) as
result_cast_as_locator, cast(null as int) as result_cast_char_max_length,
cast(null as int) as result_cast_char_oc
tet_length, cast(null as varchar(1)) as result_cast_char_set_catalog,
cast(null as varchar(1)) as result_cast_char_set_schema, cast(null as
varchar(1)) as result_cast_character_set_name, cast(null as varchar(1)) as
result_cast_collation_catalog, cast(null as varchar(1)) as
result_cast_collation_schema, cast(null as varchar(1)) as
result_cast_collation_name, cast(null as int) as result_cast_numeric_precision,
cast(null as int) as result_cast_numeric_radix, cast(null as int) as
result_cast_numeric_scale, cast(null as int) as result_cast_datetime_precision,
cast(null as varchar(1)) as result_cast_interval_type, cast(null as int) as
result_cast_interval_precision, cast(null as varchar(1)) as
result_cast_type_udt_catalog, cast(null as varchar(1)) as
result_cast_type_udt_schema, cast(null as varchar(1)) as
result_cast_type_udt_name, cast(null as varchar(1)) as
result_cast_scope_catalog, cast(null as varchar(1)) as
result_cast_scope_schema, cast(null as varchar(1)) as result_cast_scope_nam
e, cast(null as int) as result_cast_max_cardinality, cast(null as varchar(1))
as result_cast_dtd_identifier, cast(null as varchar(1)) as declared_data_type,
cast(null as int) as declared_numeric_precision, cast(null as int) as
declared_numeric_scale, cast(null as varchar(1)) as
result_cast_from_declared_data_type, cast(null as int) as
result_cast_declared_numeric_precision, cast(null as int) as
result_cast_declared_numeric_scale, f.\"schema_id\" as schema_id, f.\"id\" as
function_id, f.\"type\" as function_type, f.\"language\" as function_language,
f.\"system\" as is_system, cm.\"remark\" as comments from sys.\"functions\" f
inner join sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" inner join
sys.\"function_types\" ft on ft.\"function_type_id\" = f.\"type\" inner join
sys.\"function_languages\" fl on fl.\"language_id\" = f.\"language\" left outer
join sys.\"args\" a on a.\"func_id\" = f.\"id\" and a.\"inout\" = 0 and
a.\"number\" = 0 left outer join sys.\"comments\" cm on cm.\"id\"
= f.\"id\" where f.\"type\" in (1, 2, 5, 7) order by s.\"name\",
f.\"name\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "schemata", "create view
information_schema.schemata as select cast(null as varchar(1)) as catalog_name,
s.\"name\" as schema_name, a.\"name\" as schema_owner, cast(null as varchar(1))
as default_character_set_catalog, cast(null as varchar(1)) as
default_character_set_schema, cast('UTF-8' as varchar(16)) as
default_character_set_name, cast(null as varchar(1)) as sql_path, s.\"id\" as
schema_id, s.\"system\" as is_system, cm.\"remark\" as comments from
sys.\"schemas\" s inner join sys.\"auths\" a on s.\"owner\" = a.\"id\" left
outer join sys.\"comments\" cm on s.\"id\" = cm.\"id\" order by s.\"name\";",
"VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "sequences", "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,
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\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
[ "sys._tables", "information_schema", "table_constraints", "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, 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.\"_tabl
es\" 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\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
@@ -612,7 +612,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "columns", "is_nullable",
"varchar", 3, 0, NULL, true, 6, NULL, NULL ]
[ "sys._columns", "information_schema", "columns", "data_type",
"varchar", 1024, 0, NULL, true, 7, NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"character_maximum_length", "int", 32, 0, NULL, true, 8,
NULL, NULL ]
-[ "sys._columns", "information_schema", "columns",
"character_octet_length", "int", 32, 0, NULL, true, 9,
NULL, NULL ]
+[ "sys._columns", "information_schema", "columns",
"character_octet_length", "bigint", 64, 0, NULL, true,
9, NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_precision", "int", 32, 0, NULL, true, 10, NULL,
NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_precision_radix", "int", 32, 0, NULL, true, 11,
NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_scale", "int", 32, 0, NULL, true, 12, NULL,
NULL ]
@@ -675,7 +675,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "parameters",
"to_sql_specific_name", "varchar", 1, 0, NULL, true, 13,
NULL, NULL ]
[ "sys._columns", "information_schema", "parameters", "data_type",
"varchar", 1024, 0, NULL, true, 14, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_maximum_length", "int", 32, 0, NULL, true, 15,
NULL, NULL ]
-[ "sys._columns", "information_schema", "parameters",
"character_octet_length", "int", 32, 0, NULL, true, 16,
NULL, NULL ]
+[ "sys._columns", "information_schema", "parameters",
"character_octet_length", "bigint", 64, 0, NULL, true,
16, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_catalog", "varchar", 1, 0, NULL, true,
17, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_schema", "varchar", 1, 0, NULL, true, 18,
NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_name", "varchar", 16, 0, NULL, true, 19,
NULL, NULL ]
@@ -738,7 +738,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "routines", "udt_name",
"varchar", 1, 0, NULL, true, 12, NULL, NULL ]
[ "sys._columns", "information_schema", "routines", "data_type",
"varchar", 1024, 0, NULL, true, 13, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_maximum_length", "int", 32, 0, NULL, true, 14,
NULL, NULL ]
-[ "sys._columns", "information_schema", "routines",
"character_octet_length", "int", 32, 0, NULL, true, 15,
NULL, NULL ]
+[ "sys._columns", "information_schema", "routines",
"character_octet_length", "bigint", 64, 0, NULL, true,
15, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_catalog", "varchar", 1, 0, NULL, true,
16, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_schema", "varchar", 1, 0, NULL, true, 17,
NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_name", "char", 5, 0, NULL, true, 18, NULL,
NULL ]
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -444,13 +444,13 @@ select 'null in fkeys.delete_action', de
% .%25, .s, .t, ., ., .t, ., ., . #
table_name
% %25, name, name, query, type, system, commit_action, access, comment
# name
% char, varchar, varchar, clob, varchar,
boolean, char, char, varchar # type
-% 11, 18, 34, 6818, 5, 5, 8, 10, 0 # length
+% 11, 18, 34, 6796, 5, 5, 8, 10, 0 # length
[ "sys._tables", "information_schema", "character_sets", "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,
cast('UTF-8' as varchar(16)) as character_set_name, cast('ISO/IEC 10646:2021'
as varchar(20)) as character_repertoire, cast('UTF-8' as varchar(16)) as
form_of_use, cast(null as varchar(1)) as default_collate_catalog, cast(null as
varchar(1)) as default_collate_schema, cast(null as varchar(1)) as
default_collate_name;", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
[ "sys._tables", "information_schema", "check_constraints", "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;", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
-[ "sys._tables", "information_schema", "columns", "create view
information_schema.columns as select cast(null as varchar(1)) as table_catalog,
s.\"name\" as table_schema, t.\"name\" as table_name, c.\"name\" as
column_name, cast(1 + c.\"number\" as int) as ordinal_position, c.\"default\"
as column_default, cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') as varchar(3))
as is_nullable, cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\",
c.\"type_scale\", true, true) as varchar(1024)) as data_type,
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml')
and c.\"type_digits\" > 0, c.\"type_digits\", null) as int) as
character_maximum_length, cast(sys.ifthenelse(c.\"type\" in
('varchar','clob','char','json','url','xml') and c.\"type_digits\" > 0,
sys.sql_min(4 * c.\"type_digits\", 2147483647), 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'),
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(c.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\", c.\"type_scale\", true,
true), null) 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, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(null as varchar(1)) as domain_catalog,
cast(null as varchar(1)) as domain_schema, cast(null as varchar(1)) as
domain_name, cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1))
as udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1))
as scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast('NO' as varchar(3)) as
is_self_referencing, cast
(sys.ifthenelse(seq.\"name\" is null or c.\"null\", 'NO', 'YES') as
varchar(3)) as is_identity, seq.\"name\" as identity_generation, seq.\"start\"
as identity_start, seq.\"increment\" as identity_increment, seq.\"maxvalue\" as
identity_maximum, seq.\"minvalue\" as identity_minimum,
cast(sys.ifthenelse(seq.\"name\" is null, null, sys.ifthenelse(seq.\"cycle\",
'YES', 'NO')) as varchar(3)) as identity_cycle,
cast(sys.ifthenelse(seq.\"name\" is null, 'NO', 'YES') as varchar(3)) as
is_generated, cast(sys.ifthenelse(seq.\"name\" is null, null, c.\"default\") as
varchar(1024)) as generation_expression, cast('NO' as varchar(3)) as
is_system_time_period_start, cast('NO' as varchar(3)) as
is_system_time_period_end, cast('NO' as varchar(3)) as
system_time_period_timestamp_generation, cast(sys.ifthenelse(t.\"type\" in
(0,3,7,20,30), 'YES', 'NO') as varchar(3)) as is_updatable, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as d
eclared_numeric_scale, t.\"schema_id\" as schema_id, c.\"table_id\" as
table_id, c.\"id\" as column_id, seq.\"id\" as sequence_id, t.\"system\" as
is_system, cm.\"remark\" as comments from sys.\"columns\" c inner join
sys.\"tables\" t on c.\"table_id\" = t.\"id\" inner join sys.\"schemas\" s on
t.\"schema_id\" = s.\"id\" left outer join sys.\"comments\" cm on c.\"id\" =
cm.\"id\" left outer join sys.\"sequences\" seq on ((seq.\"name\"||'\"') =
substring(c.\"default\", 3 + sys.\"locate\"('\".\"seq_',c.\"default\",14)))
order by s.\"name\", t.\"name\", c.\"number\";", "VIEW", true, "COMMIT",
"WRITABLE", NULL ]
-[ "sys._tables", "information_schema", "parameters", "create view
information_schema.parameters as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(sys.ifthenelse((a.\"inout\" = 0 or f.\"type\" = 2), 1 + a.\"number\",
sys.ifthenelse(f.\"type\" = 1, a.\"number\", (1 + a.\"number\" -
f.count_out_cols))) as int) as ordinal_position,
cast(sys.ifthenelse(a.\"inout\" = 0, 'OUT', sys.ifthenelse(a.\"inout\" = 1,
'IN', 'INOUT')) as varchar(5)) as parameter_mode,
cast(sys.ifthenelse(a.\"inout\" = 0, 'YES', 'NO') as varchar(3)) as is_result,
cast(null as varchar(1)) as as_locator, a.\"name\" as parameter_name, cast(null
as varchar(1)) as from_sql_specific_catalog, cast(null as varchar(1)) as
from_sql_specific_schema, cast(null as varchar(1)) as from_sql_specific_name,
cast(null as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1))
as to_sql_specific_schema, cast(null as
varchar(1)) as to_sql_specific_name, cast(sys.\"sql_datatype\"(a.\"type\",
a.\"type_digits\", a.\"type_scale\", true, true) as varchar(1024)) as
data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", null) as int) as character_maximum_length,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml')
and a.\"type_digits\" > 0, sys.sql_min(4 * a.\"type_digits\", 2147483647),
null) as int) as character_octet_length, cast(null as varchar(1)) as
character_set_catalog, cast(null as varchar(1)) as character_set_schema,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml'),
'UTF-8', null) as varchar(16)) as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','
decimal','numeric','oid'), a.\"type_digits\", null) as int) as
numeric_precision, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"typ
e_digits\" in (7, 10, 12, 13), sys.ifthenelse(a.\"type_scale\" > 0,
a.\"type_scale\", 3), 0)) else null end as int) as interval_precision,
cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1)) as
udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1)) as
scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast(null as varchar(1)) as
declared_data_type, cast(null as int) as declared_numeric_precision, cast(null
as int) as declared_numeric_scale, cast(null as varchar(1)) as
parameter_default, f.\"schema_id\" as schema_id, f.\"id\" as function_id,
a.\"id\" as arg_id, f.\"name\" as function_name, f.\"type\" as function_type,
f.\"system\" as is_system from sys.\"args\" a inner join (select fun.*, (select
count(*) from sys.args a0 where a0.inout = 0 and a0.func_id = fun.id) as
count_out_cols from sys.\"functions\" fun where fun.\
"type\" in (1, 2, 5, 7)) f on f.\"id\" = a.\"func_id\" inner join
sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" order by s.\"name\",
f.\"name\", f.\"id\", a.\"inout\" desc, a.\"number\";", "VIEW", true,
"COMMIT", "WRITABLE", NULL ]
+[ "sys._tables", "information_schema", "columns", "create view
information_schema.columns as select cast(null as varchar(1)) as table_catalog,
s.\"name\" as table_schema, t.\"name\" as table_name, c.\"name\" as
column_name, cast(1 + c.\"number\" as int) as ordinal_position, c.\"default\"
as column_default, cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') as varchar(3))
as is_nullable, cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\",
c.\"type_scale\", true, true) as varchar(1024)) as data_type,
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml')
and c.\"type_digits\" > 0, c.\"type_digits\", null) as int) as
character_maximum_length, cast(sys.ifthenelse(c.\"type\" in
('varchar','clob','char','json','url','xml') and c.\"type_digits\" > 0, 4 *
c.\"type_digits\", null) as bigint) as character_octet_length,
cast(sys.ifthenelse(c.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
c.\"type_digits\", n
ull) 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'),
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(c.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\", c.\"type_scale\", true,
true), null) 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, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(null as varchar(1)) as domain_catalog,
cast(null as varchar(1)) as domain_schema, cast(null as varchar(1)) as
domain_name, cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1))
as udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1))
as scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast('NO' as varchar(3)) as
is_self_referencing, cast(sys.ifthenelse(seq.\"
name\" is null or c.\"null\", 'NO', 'YES') as varchar(3)) as is_identity,
seq.\"name\" as identity_generation, seq.\"start\" as identity_start,
seq.\"increment\" as identity_increment, seq.\"maxvalue\" as identity_maximum,
seq.\"minvalue\" as identity_minimum, cast(sys.ifthenelse(seq.\"name\" is null,
null, sys.ifthenelse(seq.\"cycle\", 'YES', 'NO')) as varchar(3)) as
identity_cycle, cast(sys.ifthenelse(seq.\"name\" is null, 'NO', 'YES') as
varchar(3)) as is_generated, cast(sys.ifthenelse(seq.\"name\" is null, null,
c.\"default\") as varchar(1024)) as generation_expression, cast('NO' as
varchar(3)) as is_system_time_period_start, cast('NO' as varchar(3)) as
is_system_time_period_end, cast('NO' as varchar(3)) as
system_time_period_timestamp_generation, cast(sys.ifthenelse(t.\"type\" in
(0,3,7,20,30), 'YES', 'NO') as varchar(3)) as is_updatable, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
t.\"schema_id\" as schema_id, c.\"table_id\" as table_id, c.\"id\" as
column_id, seq.\"id\" as sequence_id, t.\"system\" as is_system, cm.\"remark\"
as comments from sys.\"columns\" c inner join sys.\"tables\" t on
c.\"table_id\" = t.\"id\" inner join sys.\"schemas\" s on t.\"schema_id\" =
s.\"id\" left outer join sys.\"comments\" cm on c.\"id\" = cm.\"id\" left outer
join sys.\"sequences\" seq on ((seq.\"name\"||'\"') = substring(c.\"default\",
3 + sys.\"locate\"('\".\"seq_',c.\"default\",14))) order by s.\"name\",
t.\"name\", c.\"number\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
+[ "sys._tables", "information_schema", "parameters", "create view
information_schema.parameters as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(sys.ifthenelse((a.\"inout\" = 0 or f.\"type\" = 2), 1 + a.\"number\",
sys.ifthenelse(f.\"type\" = 1, a.\"number\", (1 + a.\"number\" -
f.count_out_cols))) as int) as ordinal_position,
cast(sys.ifthenelse(a.\"inout\" = 0, 'OUT', sys.ifthenelse(a.\"inout\" = 1,
'IN', 'INOUT')) as varchar(5)) as parameter_mode,
cast(sys.ifthenelse(a.\"inout\" = 0, 'YES', 'NO') as varchar(3)) as is_result,
cast(null as varchar(1)) as as_locator, a.\"name\" as parameter_name, cast(null
as varchar(1)) as from_sql_specific_catalog, cast(null as varchar(1)) as
from_sql_specific_schema, cast(null as varchar(1)) as from_sql_specific_name,
cast(null as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1))
as to_sql_specific_schema, cast(null as
varchar(1)) as to_sql_specific_name, cast(sys.\"sql_datatype\"(a.\"type\",
a.\"type_digits\", a.\"type_scale\", true, true) as varchar(1024)) as
data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", null) as int) as character_maximum_length,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml')
and a.\"type_digits\" > 0, 4 * a.\"type_digits\", null) as bigint) as
character_octet_length, cast(null as varchar(1)) as character_set_catalog,
cast(null as varchar(1)) as character_set_schema,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml'),
'UTF-8', null) as varchar(16)) as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oi
d'), a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10,
12, 13), sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else
null end as int) as interval_precision, cast(null as varchar(1)) as
udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null as varchar(1))
as udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum_cardinality, cast(null as varchar(1)) as dtd_identifier,
cast(null as varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
cast(null as varchar(1)) as parameter_default, f.\"schema_id\" as schema_id,
f.\"id\" as function_id, a.\"id\" as arg_id, f.\"name\" as function_name,
f.\"type\" as function_type, f.\"system\" as is_system from sys.\"args\" a
inner join (select fun.*, (select count(*) from sys.args a0 where a0.inout = 0
and a0.func_id = fun.id) as count_out_cols from sys.\"functions\" fun where
fun.\"type\" in (1, 2, 5, 7
)) f on f.\"id\" = a.\"func_id\" inner join sys.\"schemas\" s on s.\"id\" =
f.\"schema_id\" order by s.\"name\", f.\"name\", f.\"id\", a.\"inout\" desc,
a.\"number\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "referential_constraints",
"create view information_schema.referential_constraints as select cast(null as
varchar(1)) as constraint_catalog, s.\"name\" as constraint_schema, fk.\"name\"
as constraint_name, cast(null as varchar(1)) as unique_constraint_catalog,
uks.\"name\" as unique_constraint_schema, uk.\"name\" as
unique_constraint_name, cast('FULL' as varchar(7)) as match_option,
fk.\"update_action\" as update_rule, fk.\"delete_action\" as delete_rule,
t.\"schema_id\" as fk_schema_id, t.\"id\" as fk_table_id, t.\"name\" as
fk_table_name, fk.\"id\" as fk_key_id, ukt.\"schema_id\" as uc_schema_id,
uk.\"table_id\" as uc_table_id, ukt.\"name\" as uc_table_name, uk.\"id\" as
uc_key_id from sys.\"fkeys\" fk inner join sys.\"tables\" t on t.\"id\" =
fk.\"table_id\" inner join sys.\"schemas\" s on s.\"id\" = t.\"schema_id\" left
outer join sys.\"keys\" uk on uk.\"id\" = fk.\"rkey\" left outer join
sys.\"tables\" ukt on ukt.\"id\" = uk.\"table_id\" l
eft outer join sys.\"schemas\" uks on uks.\"id\" = ukt.\"schema_id\" order by
s.\"name\", t.\"name\", fk.\"name\";", "VIEW", true, "COMMIT",
"WRITABLE", NULL ]
-[ "sys._tables", "information_schema", "routines", "create view
information_schema.routines as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(null as varchar(1)) as routine_catalog, s.\"name\" as routine_schema,
f.\"name\" as routine_name, ft.\"function_type_keyword\" as routine_type,
cast(null as varchar(1)) as module_catalog, cast(null as varchar(1)) as
module_schema, cast(f.\"mod\" as varchar(128)) as module_name, cast(null as
varchar(1)) as udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null
as varchar(1)) as udt_name, cast(case f.\"type\" when 1 then
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true) when 2 then null when 5 then 'TABLE' when 7 then 'TABLE' else null end as
varchar(1024)) as data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", n
ull) as int) as character_maximum_length, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
sys.sql_min(4 * a.\"type_digits\", 2147483647), null) as int) as
character_octet_length, cast(null as varchar(1)) as character_set_catalog,
cast(null as varchar(1)) as character_set_schema, 'UTF-8' as
character_set_name, cast(null as varchar(1)) as collation_catalog, cast(null as
varchar(1)) as collation_schema, cast(null as varchar(1)) as collation_name,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float'
,'real','double','decimal','numeric','oid'), a.\"type_scale\", null) as int)
as numeric_scale, cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'), a.\"type_scale\" -1, null)
as int) as datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10, 12, 13),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else null end as
int) as interval_precision, cast(null as varchar(1)) as type_udt_catalog,
cast(null as varchar(1)) as type_udt_schema, cast(null as varchar(1)) as
type_udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum
_cardinality, cast(null as int) as dtd_identifier,
cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\"))), null) as varchar(8196)) as routine_body,
f.\"func\" as routine_definition,
cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external
name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 +
sys.\"locate\"('external name',f.\"func\"))), null) as varchar(1024)) as
external_name, fl.\"language_keyword\" as external_language, 'GENERAL' as
parameter_style, 'YES' as is_deterministic, cast(
sys.ifthenelse(f.\"side_effect\", 'MODIFIES', 'READ') as varchar(10)) as
sql_data_access, cast(case f.\"type\" when 2 then null else 'NO' end as
varchar(3)) as is_null_call, cast(null as varchar(1)) as sql_path, cast(null as
varchar(1)) as schema_level_routine, cast(null as int) as
max_dynamic_result_sets, cast(null as varchar(1)) as is_user_defined_cast,
cast(null as varchar(1)) as is_implicitly_invocable, cast(null as varchar(1))
as security_type, cast(null as varchar(1)) as to_sql_specific_catalog,
cast(null as varchar(1)) as to_sql_specific_schema, cast(null as varchar(1)) as
to_sql_specific_name, cast(null as varchar(1)) as as_locator, cast(null as
timestamp) as created, cast(null as timestamp) as last_altered, cast(null as
varchar(1)) as new_savepoint_level, cast(null as varchar(1)) as
is_udt_dependent, cast(null as varchar(1)) as result_cast_from_data_type,
cast(null as varchar(1)) as result_cast_as_locator, cast(null as int) as
result_cast_char_max_length, cast(null as int)
as result_cast_char_octet_length, cast(null as varchar(1)) as
result_cast_char_set_catalog, cast(null as varchar(1)) as
result_cast_char_set_schema, cast(null as varchar(1)) as
result_cast_character_set_name, cast(null as varchar(1)) as
result_cast_collation_catalog, cast(null as varchar(1)) as
result_cast_collation_schema, cast(null as varchar(1)) as
result_cast_collation_name, cast(null as int) as result_cast_numeric_precision,
cast(null as int) as result_cast_numeric_radix, cast(null as int) as
result_cast_numeric_scale, cast(null as int) as result_cast_datetime_precision,
cast(null as varchar(1)) as result_cast_interval_type, cast(null as int) as
result_cast_interval_precision, cast(null as varchar(1)) as
result_cast_type_udt_catalog, cast(null as varchar(1)) as
result_cast_type_udt_schema, cast(null as varchar(1)) as
result_cast_type_udt_name, cast(null as varchar(1)) as
result_cast_scope_catalog, cast(null as varchar(1)) as
result_cast_scope_schema, cast(null as varchar(1)) as
result_cast_scope_name, cast(null as int) as result_cast_max_cardinality,
cast(null as varchar(1)) as result_cast_dtd_identifier, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
cast(null as varchar(1)) as result_cast_from_declared_data_type, cast(null as
int) as result_cast_declared_numeric_precision, cast(null as int) as
result_cast_declared_numeric_scale, f.\"schema_id\" as schema_id, f.\"id\" as
function_id, f.\"type\" as function_type, f.\"language\" as function_language,
f.\"system\" as is_system, cm.\"remark\" as comments from sys.\"functions\" f
inner join sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" inner join
sys.\"function_types\" ft on ft.\"function_type_id\" = f.\"type\" inner join
sys.\"function_languages\" fl on fl.\"language_id\" = f.\"language\" left outer
join sys.\"args\" a on a.\"func_id\" = f.\"id\" and a.\"inout\" = 0 and
a.\"number\" = 0 left outer join sys.\"comm
ents\" cm on cm.\"id\" = f.\"id\" where f.\"type\" in (1, 2, 5, 7) order by
s.\"name\", f.\"name\";", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
+[ "sys._tables", "information_schema", "routines", "create view
information_schema.routines as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(null as varchar(1)) as routine_catalog, s.\"name\" as routine_schema,
f.\"name\" as routine_name, ft.\"function_type_keyword\" as routine_type,
cast(null as varchar(1)) as module_catalog, cast(null as varchar(1)) as
module_schema, cast(f.\"mod\" as varchar(128)) as module_name, cast(null as
varchar(1)) as udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null
as varchar(1)) as udt_name, cast(case f.\"type\" when 1 then
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true) when 2 then null when 5 then 'TABLE' when 7 then 'TABLE' else null end as
varchar(1024)) as data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", n
ull) as int) as character_maximum_length, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0, 4 *
a.\"type_digits\", null) as bigint) as character_octet_length, cast(null as
varchar(1)) as character_set_catalog, cast(null as varchar(1)) as
character_set_schema, 'UTF-8' as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','deci
mal','numeric','oid'), a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'), a.\"type_scale\" -1, null)
as int) as datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10, 12, 13),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else null end as
int) as interval_precision, cast(null as varchar(1)) as type_udt_catalog,
cast(null as varchar(1)) as type_udt_schema, cast(null as varchar(1)) as
type_udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum_cardinality, cast(nul
l as int) as dtd_identifier,
cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\"))), null) as varchar(8196)) as routine_body,
f.\"func\" as routine_definition,
cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external
name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 +
sys.\"locate\"('external name',f.\"func\"))), null) as varchar(1024)) as
external_name, fl.\"language_keyword\" as external_language, 'GENERAL' as
parameter_style, 'YES' as is_deterministic, cast(sys.ifthenelse(f.\"sid
e_effect\", 'MODIFIES', 'READ') as varchar(10)) as sql_data_access, cast(case
f.\"type\" when 2 then null else 'NO' end as varchar(3)) as is_null_call,
cast(null as varchar(1)) as sql_path, cast(null as varchar(1)) as
schema_level_routine, cast(null as int) as max_dynamic_result_sets, cast(null
as varchar(1)) as is_user_defined_cast, cast(null as varchar(1)) as
is_implicitly_invocable, cast(null as varchar(1)) as security_type, cast(null
as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1)) as
to_sql_specific_schema, cast(null as varchar(1)) as to_sql_specific_name,
cast(null as varchar(1)) as as_locator, cast(null as timestamp) as created,
cast(null as timestamp) as last_altered, cast(null as varchar(1)) as
new_savepoint_level, cast(null as varchar(1)) as is_udt_dependent, cast(null as
varchar(1)) as result_cast_from_data_type, cast(null as varchar(1)) as
result_cast_as_locator, cast(null as int) as result_cast_char_max_length,
cast(null as int) as result_cast_char_oc
tet_length, cast(null as varchar(1)) as result_cast_char_set_catalog,
cast(null as varchar(1)) as result_cast_char_set_schema, cast(null as
varchar(1)) as result_cast_character_set_name, cast(null as varchar(1)) as
result_cast_collation_catalog, cast(null as varchar(1)) as
result_cast_collation_schema, cast(null as varchar(1)) as
result_cast_collation_name, cast(null as int) as result_cast_numeric_precision,
cast(null as int) as result_cast_numeric_radix, cast(null as int) as
result_cast_numeric_scale, cast(null as int) as result_cast_datetime_precision,
cast(null as varchar(1)) as result_cast_interval_type, cast(null as int) as
result_cast_interval_precision, cast(null as varchar(1)) as
result_cast_type_udt_catalog, cast(null as varchar(1)) as
result_cast_type_udt_schema, cast(null as varchar(1)) as
result_cast_type_udt_name, cast(null as varchar(1)) as
result_cast_scope_catalog, cast(null as varchar(1)) as
result_cast_scope_schema, cast(null as varchar(1)) as result_cast_scope_nam
e, cast(null as int) as result_cast_max_cardinality, cast(null as varchar(1))
as result_cast_dtd_identifier, cast(null as varchar(1)) as declared_data_type,
cast(null as int) as declared_numeric_precision, cast(null as int) as
declared_numeric_scale, cast(null as varchar(1)) as
result_cast_from_declared_data_type, cast(null as int) as
result_cast_declared_numeric_precision, cast(null as int) as
result_cast_declared_numeric_scale, f.\"schema_id\" as schema_id, f.\"id\" as
function_id, f.\"type\" as function_type, f.\"language\" as function_language,
f.\"system\" as is_system, cm.\"remark\" as comments from sys.\"functions\" f
inner join sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" inner join
sys.\"function_types\" ft on ft.\"function_type_id\" = f.\"type\" inner join
sys.\"function_languages\" fl on fl.\"language_id\" = f.\"language\" left outer
join sys.\"args\" a on a.\"func_id\" = f.\"id\" and a.\"inout\" = 0 and
a.\"number\" = 0 left outer join sys.\"comments\" cm on cm.\"id\"
= f.\"id\" where f.\"type\" in (1, 2, 5, 7) order by s.\"name\",
f.\"name\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "schemata", "create view
information_schema.schemata as select cast(null as varchar(1)) as catalog_name,
s.\"name\" as schema_name, a.\"name\" as schema_owner, cast(null as varchar(1))
as default_character_set_catalog, cast(null as varchar(1)) as
default_character_set_schema, cast('UTF-8' as varchar(16)) as
default_character_set_name, cast(null as varchar(1)) as sql_path, s.\"id\" as
schema_id, s.\"system\" as is_system, cm.\"remark\" as comments from
sys.\"schemas\" s inner join sys.\"auths\" a on s.\"owner\" = a.\"id\" left
outer join sys.\"comments\" cm on s.\"id\" = cm.\"id\" order by s.\"name\";",
"VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "sequences", "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,
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\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
[ "sys._tables", "information_schema", "table_constraints", "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, 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.\"_tabl
es\" 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\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
@@ -610,7 +610,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "columns", "is_nullable",
"varchar", 3, 0, NULL, true, 6, NULL, NULL ]
[ "sys._columns", "information_schema", "columns", "data_type",
"varchar", 1024, 0, NULL, true, 7, NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"character_maximum_length", "int", 32, 0, NULL, true, 8,
NULL, NULL ]
-[ "sys._columns", "information_schema", "columns",
"character_octet_length", "int", 32, 0, NULL, true, 9,
NULL, NULL ]
+[ "sys._columns", "information_schema", "columns",
"character_octet_length", "bigint", 64, 0, NULL, true,
9, NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_precision", "int", 32, 0, NULL, true, 10, NULL,
NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_precision_radix", "int", 32, 0, NULL, true, 11,
NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_scale", "int", 32, 0, NULL, true, 12, NULL,
NULL ]
@@ -673,7 +673,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "parameters",
"to_sql_specific_name", "varchar", 1, 0, NULL, true, 13,
NULL, NULL ]
[ "sys._columns", "information_schema", "parameters", "data_type",
"varchar", 1024, 0, NULL, true, 14, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_maximum_length", "int", 32, 0, NULL, true, 15,
NULL, NULL ]
-[ "sys._columns", "information_schema", "parameters",
"character_octet_length", "int", 32, 0, NULL, true, 16,
NULL, NULL ]
+[ "sys._columns", "information_schema", "parameters",
"character_octet_length", "bigint", 64, 0, NULL, true,
16, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_catalog", "varchar", 1, 0, NULL, true,
17, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_schema", "varchar", 1, 0, NULL, true, 18,
NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_name", "varchar", 16, 0, NULL, true, 19,
NULL, NULL ]
@@ -736,7 +736,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "routines", "udt_name",
"varchar", 1, 0, NULL, true, 12, NULL, NULL ]
[ "sys._columns", "information_schema", "routines", "data_type",
"varchar", 1024, 0, NULL, true, 13, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_maximum_length", "int", 32, 0, NULL, true, 14,
NULL, NULL ]
-[ "sys._columns", "information_schema", "routines",
"character_octet_length", "int", 32, 0, NULL, true, 15,
NULL, NULL ]
+[ "sys._columns", "information_schema", "routines",
"character_octet_length", "bigint", 64, 0, NULL, true,
15, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_catalog", "varchar", 1, 0, NULL, true,
16, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_schema", "varchar", 1, 0, NULL, true, 17,
NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_name", "char", 5, 0, NULL, true, 18, NULL,
NULL ]
diff --git a/sql/test/emptydb/Tests/check.stable.out.int128
b/sql/test/emptydb/Tests/check.stable.out.int128
--- a/sql/test/emptydb/Tests/check.stable.out.int128
+++ b/sql/test/emptydb/Tests/check.stable.out.int128
@@ -444,13 +444,13 @@ select 'null in fkeys.delete_action', de
% .%25, .s, .t, ., ., .t, ., ., . #
table_name
% %25, name, name, query, type, system, commit_action, access, comment
# name
% char, varchar, varchar, clob, varchar,
boolean, char, char, varchar # type
-% 11, 18, 34, 6818, 5, 5, 8, 10, 0 # length
+% 11, 18, 34, 6796, 5, 5, 8, 10, 0 # length
[ "sys._tables", "information_schema", "character_sets", "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,
cast('UTF-8' as varchar(16)) as character_set_name, cast('ISO/IEC 10646:2021'
as varchar(20)) as character_repertoire, cast('UTF-8' as varchar(16)) as
form_of_use, cast(null as varchar(1)) as default_collate_catalog, cast(null as
varchar(1)) as default_collate_schema, cast(null as varchar(1)) as
default_collate_name;", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
[ "sys._tables", "information_schema", "check_constraints", "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;", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
-[ "sys._tables", "information_schema", "columns", "create view
information_schema.columns as select cast(null as varchar(1)) as table_catalog,
s.\"name\" as table_schema, t.\"name\" as table_name, c.\"name\" as
column_name, cast(1 + c.\"number\" as int) as ordinal_position, c.\"default\"
as column_default, cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') as varchar(3))
as is_nullable, cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\",
c.\"type_scale\", true, true) as varchar(1024)) as data_type,
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml')
and c.\"type_digits\" > 0, c.\"type_digits\", null) as int) as
character_maximum_length, cast(sys.ifthenelse(c.\"type\" in
('varchar','clob','char','json','url','xml') and c.\"type_digits\" > 0,
sys.sql_min(4 * c.\"type_digits\", 2147483647), 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'),
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(c.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\", c.\"type_scale\", true,
true), null) 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, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(null as varchar(1)) as domain_catalog,
cast(null as varchar(1)) as domain_schema, cast(null as varchar(1)) as
domain_name, cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1))
as udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1))
as scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast('NO' as varchar(3)) as
is_self_referencing, cast
(sys.ifthenelse(seq.\"name\" is null or c.\"null\", 'NO', 'YES') as
varchar(3)) as is_identity, seq.\"name\" as identity_generation, seq.\"start\"
as identity_start, seq.\"increment\" as identity_increment, seq.\"maxvalue\" as
identity_maximum, seq.\"minvalue\" as identity_minimum,
cast(sys.ifthenelse(seq.\"name\" is null, null, sys.ifthenelse(seq.\"cycle\",
'YES', 'NO')) as varchar(3)) as identity_cycle,
cast(sys.ifthenelse(seq.\"name\" is null, 'NO', 'YES') as varchar(3)) as
is_generated, cast(sys.ifthenelse(seq.\"name\" is null, null, c.\"default\") as
varchar(1024)) as generation_expression, cast('NO' as varchar(3)) as
is_system_time_period_start, cast('NO' as varchar(3)) as
is_system_time_period_end, cast('NO' as varchar(3)) as
system_time_period_timestamp_generation, cast(sys.ifthenelse(t.\"type\" in
(0,3,7,20,30), 'YES', 'NO') as varchar(3)) as is_updatable, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as d
eclared_numeric_scale, t.\"schema_id\" as schema_id, c.\"table_id\" as
table_id, c.\"id\" as column_id, seq.\"id\" as sequence_id, t.\"system\" as
is_system, cm.\"remark\" as comments from sys.\"columns\" c inner join
sys.\"tables\" t on c.\"table_id\" = t.\"id\" inner join sys.\"schemas\" s on
t.\"schema_id\" = s.\"id\" left outer join sys.\"comments\" cm on c.\"id\" =
cm.\"id\" left outer join sys.\"sequences\" seq on ((seq.\"name\"||'\"') =
substring(c.\"default\", 3 + sys.\"locate\"('\".\"seq_',c.\"default\",14)))
order by s.\"name\", t.\"name\", c.\"number\";", "VIEW", true, "COMMIT",
"WRITABLE", NULL ]
-[ "sys._tables", "information_schema", "parameters", "create view
information_schema.parameters as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(sys.ifthenelse((a.\"inout\" = 0 or f.\"type\" = 2), 1 + a.\"number\",
sys.ifthenelse(f.\"type\" = 1, a.\"number\", (1 + a.\"number\" -
f.count_out_cols))) as int) as ordinal_position,
cast(sys.ifthenelse(a.\"inout\" = 0, 'OUT', sys.ifthenelse(a.\"inout\" = 1,
'IN', 'INOUT')) as varchar(5)) as parameter_mode,
cast(sys.ifthenelse(a.\"inout\" = 0, 'YES', 'NO') as varchar(3)) as is_result,
cast(null as varchar(1)) as as_locator, a.\"name\" as parameter_name, cast(null
as varchar(1)) as from_sql_specific_catalog, cast(null as varchar(1)) as
from_sql_specific_schema, cast(null as varchar(1)) as from_sql_specific_name,
cast(null as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1))
as to_sql_specific_schema, cast(null as
varchar(1)) as to_sql_specific_name, cast(sys.\"sql_datatype\"(a.\"type\",
a.\"type_digits\", a.\"type_scale\", true, true) as varchar(1024)) as
data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", null) as int) as character_maximum_length,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml')
and a.\"type_digits\" > 0, sys.sql_min(4 * a.\"type_digits\", 2147483647),
null) as int) as character_octet_length, cast(null as varchar(1)) as
character_set_catalog, cast(null as varchar(1)) as character_set_schema,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml'),
'UTF-8', null) as varchar(16)) as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','
decimal','numeric','oid'), a.\"type_digits\", null) as int) as
numeric_precision, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"typ
e_digits\" in (7, 10, 12, 13), sys.ifthenelse(a.\"type_scale\" > 0,
a.\"type_scale\", 3), 0)) else null end as int) as interval_precision,
cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1)) as
udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1)) as
scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast(null as varchar(1)) as
declared_data_type, cast(null as int) as declared_numeric_precision, cast(null
as int) as declared_numeric_scale, cast(null as varchar(1)) as
parameter_default, f.\"schema_id\" as schema_id, f.\"id\" as function_id,
a.\"id\" as arg_id, f.\"name\" as function_name, f.\"type\" as function_type,
f.\"system\" as is_system from sys.\"args\" a inner join (select fun.*, (select
count(*) from sys.args a0 where a0.inout = 0 and a0.func_id = fun.id) as
count_out_cols from sys.\"functions\" fun where fun.\
"type\" in (1, 2, 5, 7)) f on f.\"id\" = a.\"func_id\" inner join
sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" order by s.\"name\",
f.\"name\", f.\"id\", a.\"inout\" desc, a.\"number\";", "VIEW", true,
"COMMIT", "WRITABLE", NULL ]
+[ "sys._tables", "information_schema", "columns", "create view
information_schema.columns as select cast(null as varchar(1)) as table_catalog,
s.\"name\" as table_schema, t.\"name\" as table_name, c.\"name\" as
column_name, cast(1 + c.\"number\" as int) as ordinal_position, c.\"default\"
as column_default, cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') as varchar(3))
as is_nullable, cast(sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\",
c.\"type_scale\", true, true) as varchar(1024)) as data_type,
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml')
and c.\"type_digits\" > 0, c.\"type_digits\", null) as int) as
character_maximum_length, cast(sys.ifthenelse(c.\"type\" in
('varchar','clob','char','json','url','xml') and c.\"type_digits\" > 0, 4 *
c.\"type_digits\", null) as bigint) as character_octet_length,
cast(sys.ifthenelse(c.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
c.\"type_digits\", n
ull) 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'),
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(c.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(c.\"type\", c.\"type_digits\", c.\"type_scale\", true,
true), null) 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, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(null as varchar(1)) as domain_catalog,
cast(null as varchar(1)) as domain_schema, cast(null as varchar(1)) as
domain_name, cast(null as varchar(1)) as udt_catalog, cast(null as varchar(1))
as udt_schema, cast(null as varchar(1)) as udt_name, cast(null as varchar(1))
as scope_catalog, cast(null as varchar(1)) as scope_schema, cast(null as
varchar(1)) as scope_name, cast(null as int) as maximum_cardinality, cast(null
as varchar(1)) as dtd_identifier, cast('NO' as varchar(3)) as
is_self_referencing, cast(sys.ifthenelse(seq.\"
name\" is null or c.\"null\", 'NO', 'YES') as varchar(3)) as is_identity,
seq.\"name\" as identity_generation, seq.\"start\" as identity_start,
seq.\"increment\" as identity_increment, seq.\"maxvalue\" as identity_maximum,
seq.\"minvalue\" as identity_minimum, cast(sys.ifthenelse(seq.\"name\" is null,
null, sys.ifthenelse(seq.\"cycle\", 'YES', 'NO')) as varchar(3)) as
identity_cycle, cast(sys.ifthenelse(seq.\"name\" is null, 'NO', 'YES') as
varchar(3)) as is_generated, cast(sys.ifthenelse(seq.\"name\" is null, null,
c.\"default\") as varchar(1024)) as generation_expression, cast('NO' as
varchar(3)) as is_system_time_period_start, cast('NO' as varchar(3)) as
is_system_time_period_end, cast('NO' as varchar(3)) as
system_time_period_timestamp_generation, cast(sys.ifthenelse(t.\"type\" in
(0,3,7,20,30), 'YES', 'NO') as varchar(3)) as is_updatable, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
t.\"schema_id\" as schema_id, c.\"table_id\" as table_id, c.\"id\" as
column_id, seq.\"id\" as sequence_id, t.\"system\" as is_system, cm.\"remark\"
as comments from sys.\"columns\" c inner join sys.\"tables\" t on
c.\"table_id\" = t.\"id\" inner join sys.\"schemas\" s on t.\"schema_id\" =
s.\"id\" left outer join sys.\"comments\" cm on c.\"id\" = cm.\"id\" left outer
join sys.\"sequences\" seq on ((seq.\"name\"||'\"') = substring(c.\"default\",
3 + sys.\"locate\"('\".\"seq_',c.\"default\",14))) order by s.\"name\",
t.\"name\", c.\"number\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
+[ "sys._tables", "information_schema", "parameters", "create view
information_schema.parameters as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(sys.ifthenelse((a.\"inout\" = 0 or f.\"type\" = 2), 1 + a.\"number\",
sys.ifthenelse(f.\"type\" = 1, a.\"number\", (1 + a.\"number\" -
f.count_out_cols))) as int) as ordinal_position,
cast(sys.ifthenelse(a.\"inout\" = 0, 'OUT', sys.ifthenelse(a.\"inout\" = 1,
'IN', 'INOUT')) as varchar(5)) as parameter_mode,
cast(sys.ifthenelse(a.\"inout\" = 0, 'YES', 'NO') as varchar(3)) as is_result,
cast(null as varchar(1)) as as_locator, a.\"name\" as parameter_name, cast(null
as varchar(1)) as from_sql_specific_catalog, cast(null as varchar(1)) as
from_sql_specific_schema, cast(null as varchar(1)) as from_sql_specific_name,
cast(null as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1))
as to_sql_specific_schema, cast(null as
varchar(1)) as to_sql_specific_name, cast(sys.\"sql_datatype\"(a.\"type\",
a.\"type_digits\", a.\"type_scale\", true, true) as varchar(1024)) as
data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", null) as int) as character_maximum_length,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml')
and a.\"type_digits\" > 0, 4 * a.\"type_digits\", null) as bigint) as
character_octet_length, cast(null as varchar(1)) as character_set_catalog,
cast(null as varchar(1)) as character_set_schema,
cast(sys.ifthenelse(a.\"type\" in ('varchar','clob','char','json','url','xml'),
'UTF-8', null) as varchar(16)) as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oi
d'), a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\" -1, 0), null) as int) as
datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10,
12, 13), sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else
null end as int) as interval_precision, cast(null as varchar(1)) as
udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null as varchar(1))
as udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum_cardinality, cast(null as varchar(1)) as dtd_identifier,
cast(null as varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
cast(null as varchar(1)) as parameter_default, f.\"schema_id\" as schema_id,
f.\"id\" as function_id, a.\"id\" as arg_id, f.\"name\" as function_name,
f.\"type\" as function_type, f.\"system\" as is_system from sys.\"args\" a
inner join (select fun.*, (select count(*) from sys.args a0 where a0.inout = 0
and a0.func_id = fun.id) as count_out_cols from sys.\"functions\" fun where
fun.\"type\" in (1, 2, 5, 7
)) f on f.\"id\" = a.\"func_id\" inner join sys.\"schemas\" s on s.\"id\" =
f.\"schema_id\" order by s.\"name\", f.\"name\", f.\"id\", a.\"inout\" desc,
a.\"number\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "referential_constraints",
"create view information_schema.referential_constraints as select cast(null as
varchar(1)) as constraint_catalog, s.\"name\" as constraint_schema, fk.\"name\"
as constraint_name, cast(null as varchar(1)) as unique_constraint_catalog,
uks.\"name\" as unique_constraint_schema, uk.\"name\" as
unique_constraint_name, cast('FULL' as varchar(7)) as match_option,
fk.\"update_action\" as update_rule, fk.\"delete_action\" as delete_rule,
t.\"schema_id\" as fk_schema_id, t.\"id\" as fk_table_id, t.\"name\" as
fk_table_name, fk.\"id\" as fk_key_id, ukt.\"schema_id\" as uc_schema_id,
uk.\"table_id\" as uc_table_id, ukt.\"name\" as uc_table_name, uk.\"id\" as
uc_key_id from sys.\"fkeys\" fk inner join sys.\"tables\" t on t.\"id\" =
fk.\"table_id\" inner join sys.\"schemas\" s on s.\"id\" = t.\"schema_id\" left
outer join sys.\"keys\" uk on uk.\"id\" = fk.\"rkey\" left outer join
sys.\"tables\" ukt on ukt.\"id\" = uk.\"table_id\" l
eft outer join sys.\"schemas\" uks on uks.\"id\" = ukt.\"schema_id\" order by
s.\"name\", t.\"name\", fk.\"name\";", "VIEW", true, "COMMIT",
"WRITABLE", NULL ]
-[ "sys._tables", "information_schema", "routines", "create view
information_schema.routines as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(null as varchar(1)) as routine_catalog, s.\"name\" as routine_schema,
f.\"name\" as routine_name, ft.\"function_type_keyword\" as routine_type,
cast(null as varchar(1)) as module_catalog, cast(null as varchar(1)) as
module_schema, cast(f.\"mod\" as varchar(128)) as module_name, cast(null as
varchar(1)) as udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null
as varchar(1)) as udt_name, cast(case f.\"type\" when 1 then
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true) when 2 then null when 5 then 'TABLE' when 7 then 'TABLE' else null end as
varchar(1024)) as data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", n
ull) as int) as character_maximum_length, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
sys.sql_min(4 * a.\"type_digits\", 2147483647), null) as int) as
character_octet_length, cast(null as varchar(1)) as character_set_catalog,
cast(null as varchar(1)) as character_set_schema, 'UTF-8' as
character_set_name, cast(null as varchar(1)) as collation_catalog, cast(null as
varchar(1)) as collation_schema, cast(null as varchar(1)) as collation_name,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float'
,'real','double','decimal','numeric','oid'), a.\"type_scale\", null) as int)
as numeric_scale, cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'), a.\"type_scale\" -1, null)
as int) as datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10, 12, 13),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else null end as
int) as interval_precision, cast(null as varchar(1)) as type_udt_catalog,
cast(null as varchar(1)) as type_udt_schema, cast(null as varchar(1)) as
type_udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum
_cardinality, cast(null as int) as dtd_identifier,
cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\"))), null) as varchar(8196)) as routine_body,
f.\"func\" as routine_definition,
cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external
name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 +
sys.\"locate\"('external name',f.\"func\"))), null) as varchar(1024)) as
external_name, fl.\"language_keyword\" as external_language, 'GENERAL' as
parameter_style, 'YES' as is_deterministic, cast(
sys.ifthenelse(f.\"side_effect\", 'MODIFIES', 'READ') as varchar(10)) as
sql_data_access, cast(case f.\"type\" when 2 then null else 'NO' end as
varchar(3)) as is_null_call, cast(null as varchar(1)) as sql_path, cast(null as
varchar(1)) as schema_level_routine, cast(null as int) as
max_dynamic_result_sets, cast(null as varchar(1)) as is_user_defined_cast,
cast(null as varchar(1)) as is_implicitly_invocable, cast(null as varchar(1))
as security_type, cast(null as varchar(1)) as to_sql_specific_catalog,
cast(null as varchar(1)) as to_sql_specific_schema, cast(null as varchar(1)) as
to_sql_specific_name, cast(null as varchar(1)) as as_locator, cast(null as
timestamp) as created, cast(null as timestamp) as last_altered, cast(null as
varchar(1)) as new_savepoint_level, cast(null as varchar(1)) as
is_udt_dependent, cast(null as varchar(1)) as result_cast_from_data_type,
cast(null as varchar(1)) as result_cast_as_locator, cast(null as int) as
result_cast_char_max_length, cast(null as int)
as result_cast_char_octet_length, cast(null as varchar(1)) as
result_cast_char_set_catalog, cast(null as varchar(1)) as
result_cast_char_set_schema, cast(null as varchar(1)) as
result_cast_character_set_name, cast(null as varchar(1)) as
result_cast_collation_catalog, cast(null as varchar(1)) as
result_cast_collation_schema, cast(null as varchar(1)) as
result_cast_collation_name, cast(null as int) as result_cast_numeric_precision,
cast(null as int) as result_cast_numeric_radix, cast(null as int) as
result_cast_numeric_scale, cast(null as int) as result_cast_datetime_precision,
cast(null as varchar(1)) as result_cast_interval_type, cast(null as int) as
result_cast_interval_precision, cast(null as varchar(1)) as
result_cast_type_udt_catalog, cast(null as varchar(1)) as
result_cast_type_udt_schema, cast(null as varchar(1)) as
result_cast_type_udt_name, cast(null as varchar(1)) as
result_cast_scope_catalog, cast(null as varchar(1)) as
result_cast_scope_schema, cast(null as varchar(1)) as
result_cast_scope_name, cast(null as int) as result_cast_max_cardinality,
cast(null as varchar(1)) as result_cast_dtd_identifier, cast(null as
varchar(1)) as declared_data_type, cast(null as int) as
declared_numeric_precision, cast(null as int) as declared_numeric_scale,
cast(null as varchar(1)) as result_cast_from_declared_data_type, cast(null as
int) as result_cast_declared_numeric_precision, cast(null as int) as
result_cast_declared_numeric_scale, f.\"schema_id\" as schema_id, f.\"id\" as
function_id, f.\"type\" as function_type, f.\"language\" as function_language,
f.\"system\" as is_system, cm.\"remark\" as comments from sys.\"functions\" f
inner join sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" inner join
sys.\"function_types\" ft on ft.\"function_type_id\" = f.\"type\" inner join
sys.\"function_languages\" fl on fl.\"language_id\" = f.\"language\" left outer
join sys.\"args\" a on a.\"func_id\" = f.\"id\" and a.\"inout\" = 0 and
a.\"number\" = 0 left outer join sys.\"comm
ents\" cm on cm.\"id\" = f.\"id\" where f.\"type\" in (1, 2, 5, 7) order by
s.\"name\", f.\"name\";", "VIEW", true, "COMMIT", "WRITABLE", NULL
]
+[ "sys._tables", "information_schema", "routines", "create view
information_schema.routines as select cast(null as varchar(1)) as
specific_catalog, s.\"name\" as specific_schema,
cast(f.\"name\"||'('||f.\"id\"||')' as varchar(270)) as specific_name,
cast(null as varchar(1)) as routine_catalog, s.\"name\" as routine_schema,
f.\"name\" as routine_name, ft.\"function_type_keyword\" as routine_type,
cast(null as varchar(1)) as module_catalog, cast(null as varchar(1)) as
module_schema, cast(f.\"mod\" as varchar(128)) as module_name, cast(null as
varchar(1)) as udt_catalog, cast(null as varchar(1)) as udt_schema, cast(null
as varchar(1)) as udt_name, cast(case f.\"type\" when 1 then
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true) when 2 then null when 5 then 'TABLE' when 7 then 'TABLE' else null end as
varchar(1024)) as data_type, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0,
a.\"type_digits\", n
ull) as int) as character_maximum_length, cast(sys.ifthenelse(a.\"type\" in
('varchar','clob','char','json','url','xml') and a.\"type_digits\" > 0, 4 *
a.\"type_digits\", null) as bigint) as character_octet_length, cast(null as
varchar(1)) as character_set_catalog, cast(null as varchar(1)) as
character_set_schema, 'UTF-8' as character_set_name, cast(null as varchar(1))
as collation_catalog, cast(null as varchar(1)) as collation_schema, cast(null
as varchar(1)) as collation_name, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
a.\"type_digits\", null) as int) as numeric_precision,
cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'),
2, sys.ifthenelse(a.\"type\" in ('decimal','numeric'), 10, null)) as int) as
numeric_precision_radix, cast(sys.ifthenelse(a.\"type\" in
('int','smallint','tinyint','bigint','hugeint','float','real','double','deci
mal','numeric','oid'), a.\"type_scale\", null) as int) as numeric_scale,
cast(sys.ifthenelse(a.\"type\" in
('date','timestamp','timestamptz','time','timetz'), a.\"type_scale\" -1, null)
as int) as datetime_precision, cast(sys.ifthenelse(a.\"type\" in
('day_interval','month_interval','sec_interval'),
sys.\"sql_datatype\"(a.\"type\", a.\"type_digits\", a.\"type_scale\", true,
true), null) as varchar(40)) as interval_type, cast(case a.\"type\" when
'day_interval' then 0 when 'month_interval' then 0 when 'sec_interval' then
(sys.ifthenelse(a.\"type_digits\" in (7, 10, 12, 13),
sys.ifthenelse(a.\"type_scale\" > 0, a.\"type_scale\", 3), 0)) else null end as
int) as interval_precision, cast(null as varchar(1)) as type_udt_catalog,
cast(null as varchar(1)) as type_udt_schema, cast(null as varchar(1)) as
type_udt_name, cast(null as varchar(1)) as scope_catalog, cast(null as
varchar(1)) as scope_schema, cast(null as varchar(1)) as scope_name, cast(null
as int) as maximum_cardinality, cast(nul
l as int) as dtd_identifier,
cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\",
sys.\"locate\"('begin',f.\"func\"))), null) as varchar(8196)) as routine_body,
f.\"func\" as routine_definition,
cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0,
sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'),
sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"),
sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external
name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 +
sys.\"locate\"('external name',f.\"func\"))), null) as varchar(1024)) as
external_name, fl.\"language_keyword\" as external_language, 'GENERAL' as
parameter_style, 'YES' as is_deterministic, cast(sys.ifthenelse(f.\"sid
e_effect\", 'MODIFIES', 'READ') as varchar(10)) as sql_data_access, cast(case
f.\"type\" when 2 then null else 'NO' end as varchar(3)) as is_null_call,
cast(null as varchar(1)) as sql_path, cast(null as varchar(1)) as
schema_level_routine, cast(null as int) as max_dynamic_result_sets, cast(null
as varchar(1)) as is_user_defined_cast, cast(null as varchar(1)) as
is_implicitly_invocable, cast(null as varchar(1)) as security_type, cast(null
as varchar(1)) as to_sql_specific_catalog, cast(null as varchar(1)) as
to_sql_specific_schema, cast(null as varchar(1)) as to_sql_specific_name,
cast(null as varchar(1)) as as_locator, cast(null as timestamp) as created,
cast(null as timestamp) as last_altered, cast(null as varchar(1)) as
new_savepoint_level, cast(null as varchar(1)) as is_udt_dependent, cast(null as
varchar(1)) as result_cast_from_data_type, cast(null as varchar(1)) as
result_cast_as_locator, cast(null as int) as result_cast_char_max_length,
cast(null as int) as result_cast_char_oc
tet_length, cast(null as varchar(1)) as result_cast_char_set_catalog,
cast(null as varchar(1)) as result_cast_char_set_schema, cast(null as
varchar(1)) as result_cast_character_set_name, cast(null as varchar(1)) as
result_cast_collation_catalog, cast(null as varchar(1)) as
result_cast_collation_schema, cast(null as varchar(1)) as
result_cast_collation_name, cast(null as int) as result_cast_numeric_precision,
cast(null as int) as result_cast_numeric_radix, cast(null as int) as
result_cast_numeric_scale, cast(null as int) as result_cast_datetime_precision,
cast(null as varchar(1)) as result_cast_interval_type, cast(null as int) as
result_cast_interval_precision, cast(null as varchar(1)) as
result_cast_type_udt_catalog, cast(null as varchar(1)) as
result_cast_type_udt_schema, cast(null as varchar(1)) as
result_cast_type_udt_name, cast(null as varchar(1)) as
result_cast_scope_catalog, cast(null as varchar(1)) as
result_cast_scope_schema, cast(null as varchar(1)) as result_cast_scope_nam
e, cast(null as int) as result_cast_max_cardinality, cast(null as varchar(1))
as result_cast_dtd_identifier, cast(null as varchar(1)) as declared_data_type,
cast(null as int) as declared_numeric_precision, cast(null as int) as
declared_numeric_scale, cast(null as varchar(1)) as
result_cast_from_declared_data_type, cast(null as int) as
result_cast_declared_numeric_precision, cast(null as int) as
result_cast_declared_numeric_scale, f.\"schema_id\" as schema_id, f.\"id\" as
function_id, f.\"type\" as function_type, f.\"language\" as function_language,
f.\"system\" as is_system, cm.\"remark\" as comments from sys.\"functions\" f
inner join sys.\"schemas\" s on s.\"id\" = f.\"schema_id\" inner join
sys.\"function_types\" ft on ft.\"function_type_id\" = f.\"type\" inner join
sys.\"function_languages\" fl on fl.\"language_id\" = f.\"language\" left outer
join sys.\"args\" a on a.\"func_id\" = f.\"id\" and a.\"inout\" = 0 and
a.\"number\" = 0 left outer join sys.\"comments\" cm on cm.\"id\"
= f.\"id\" where f.\"type\" in (1, 2, 5, 7) order by s.\"name\",
f.\"name\";", "VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "schemata", "create view
information_schema.schemata as select cast(null as varchar(1)) as catalog_name,
s.\"name\" as schema_name, a.\"name\" as schema_owner, cast(null as varchar(1))
as default_character_set_catalog, cast(null as varchar(1)) as
default_character_set_schema, cast('UTF-8' as varchar(16)) as
default_character_set_name, cast(null as varchar(1)) as sql_path, s.\"id\" as
schema_id, s.\"system\" as is_system, cm.\"remark\" as comments from
sys.\"schemas\" s inner join sys.\"auths\" a on s.\"owner\" = a.\"id\" left
outer join sys.\"comments\" cm on s.\"id\" = cm.\"id\" order by s.\"name\";",
"VIEW", true, "COMMIT", "WRITABLE", NULL ]
[ "sys._tables", "information_schema", "sequences", "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,
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\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
[ "sys._tables", "information_schema", "table_constraints", "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, 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.\"_tabl
es\" 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\";", "VIEW", true, "COMMIT", "WRITABLE",
NULL ]
@@ -612,7 +612,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "columns", "is_nullable",
"varchar", 3, 0, NULL, true, 6, NULL, NULL ]
[ "sys._columns", "information_schema", "columns", "data_type",
"varchar", 1024, 0, NULL, true, 7, NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"character_maximum_length", "int", 32, 0, NULL, true, 8,
NULL, NULL ]
-[ "sys._columns", "information_schema", "columns",
"character_octet_length", "int", 32, 0, NULL, true, 9,
NULL, NULL ]
+[ "sys._columns", "information_schema", "columns",
"character_octet_length", "bigint", 64, 0, NULL, true,
9, NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_precision", "int", 32, 0, NULL, true, 10, NULL,
NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_precision_radix", "int", 32, 0, NULL, true, 11,
NULL, NULL ]
[ "sys._columns", "information_schema", "columns",
"numeric_scale", "int", 32, 0, NULL, true, 12, NULL,
NULL ]
@@ -675,7 +675,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "parameters",
"to_sql_specific_name", "varchar", 1, 0, NULL, true, 13,
NULL, NULL ]
[ "sys._columns", "information_schema", "parameters", "data_type",
"varchar", 1024, 0, NULL, true, 14, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_maximum_length", "int", 32, 0, NULL, true, 15,
NULL, NULL ]
-[ "sys._columns", "information_schema", "parameters",
"character_octet_length", "int", 32, 0, NULL, true, 16,
NULL, NULL ]
+[ "sys._columns", "information_schema", "parameters",
"character_octet_length", "bigint", 64, 0, NULL, true,
16, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_catalog", "varchar", 1, 0, NULL, true,
17, NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_schema", "varchar", 1, 0, NULL, true, 18,
NULL, NULL ]
[ "sys._columns", "information_schema", "parameters",
"character_set_name", "varchar", 16, 0, NULL, true, 19,
NULL, NULL ]
@@ -738,7 +738,7 @@ select 'null in fkeys.delete_action', de
[ "sys._columns", "information_schema", "routines", "udt_name",
"varchar", 1, 0, NULL, true, 12, NULL, NULL ]
[ "sys._columns", "information_schema", "routines", "data_type",
"varchar", 1024, 0, NULL, true, 13, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_maximum_length", "int", 32, 0, NULL, true, 14,
NULL, NULL ]
-[ "sys._columns", "information_schema", "routines",
"character_octet_length", "int", 32, 0, NULL, true, 15,
NULL, NULL ]
+[ "sys._columns", "information_schema", "routines",
"character_octet_length", "bigint", 64, 0, NULL, true,
15, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_catalog", "varchar", 1, 0, NULL, true,
16, NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_schema", "varchar", 1, 0, NULL, true, 17,
NULL, NULL ]
[ "sys._columns", "information_schema", "routines",
"character_set_name", "char", 5, 0, NULL, true, 18, NULL,
NULL ]
diff --git a/sql/test/information-schema/Tests/columns.test
b/sql/test/information-schema/Tests/columns.test
--- a/sql/test/information-schema/Tests/columns.test
+++ b/sql/test/information-schema/Tests/columns.test
@@ -175,7 +175,7 @@ SELECT COUNT(*) AS duplicates, TABLE_CAT
statement ok
-create temp table tlargechar (c1 varchar(2147483647), c2 char(2147483646), c3
clob(2147483645), c4 json(2147483644), c5 url(2147483643))
+CREATE TEMP TABLE tlargechar (c1 varchar(2147483647), c2 char(2147483646), c3
clob(2147483645), c4 json(2147483644), c5 url(2147483643)) ON COMMIT PRESERVE
ROWS
query TTTITII rowsort
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH
@@ -188,33 +188,33 @@ c1
1
VARCHAR
2147483647
-2147483647
+8589934588
tmp
tlargechar
c2
2
CHAR
2147483646
-2147483647
+8589934584
tmp
tlargechar
c3
3
CLOB
2147483645
-2147483647
+8589934580
tmp
tlargechar
c4
4
JSON
2147483644
-2147483647
+8589934576
tmp
tlargechar
c5
5
URL
2147483643
-2147483647
+8589934572
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]