[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-checkins
Subject:    MonetDB: Dec2023 - Correct the overflow problem with CHARACTER_O...
From:       Martin van Dinther via checkin-list <checkin-list () monetdb ! org>
Date:       2023-11-30 16:28:03
Message-ID: hg.ee3131e9b0c7.1701361683.-2031036211370208841 () dev ! monetdb ! org
[Download RAW message or body]

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 -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-leave@monetdb.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic