Changeset: 52c4f09b6892 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/52c4f09b6892
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
Branch: default
Log Message:

Add cast functions for some columns of information_schema.routines view


diffs (165 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
@@ -6274,7 +6274,7 @@ sql_update_default(Client c, mvc *sql, s
                "  ft.\"function_type_keyword\" AS ROUTINE_TYPE,\n"
                "  cast(NULL AS varchar(1)) AS MODULE_CATALOG,\n"
                "  cast(NULL AS varchar(1)) AS MODULE_SCHEMA,\n"
-               "  f.\"mod\" AS MODULE_NAME,\n"
+               "  cast(f.\"mod\" AS varchar(128)) AS MODULE_NAME,\n"
                "  cast(NULL AS varchar(1)) AS UDT_CATALOG,\n"
                "  cast(NULL AS varchar(1)) AS UDT_SCHEMA,\n"
                "  cast(NULL AS varchar(1)) AS UDT_NAME,\n"
@@ -6301,9 +6301,9 @@ sql_update_default(Client c, mvc *sql, s
                "  cast(NULL AS varchar(1)) AS SCOPE_NAME,\n"
                "  cast(NULL AS int) AS MAXIMUM_CARDINALITY,\n"
                "  cast(NULL AS int) AS DTD_IDENTIFIER,\n"
-               "  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 ROUTINE_BODY,\n"
+               "  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,\n"
                "  f.\"func\" AS ROUTINE_DEFINITION,\n"
-               "  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 EXTERNAL_NAME,\n"
+               "  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,\n"
                "  fl.\"language_keyword\" AS EXTERNAL_LANGUAGE,\n"
                "  'GENERAL' AS PARAMETER_STYLE,\n"
                "  'YES' AS IS_DETERMINISTIC,\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
@@ -269,7 +269,7 @@ CREATE VIEW INFORMATION_SCHEMA.ROUTINES 
   ft."function_type_keyword" AS ROUTINE_TYPE,
   cast(NULL AS varchar(1)) AS MODULE_CATALOG,
   cast(NULL AS varchar(1)) AS MODULE_SCHEMA,
-  f."mod" AS MODULE_NAME,
+  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,
@@ -296,9 +296,9 @@ CREATE VIEW INFORMATION_SCHEMA.ROUTINES 
   cast(NULL AS varchar(1)) AS SCOPE_NAME,
   cast(NULL AS int) AS MAXIMUM_CARDINALITY,
   cast(NULL AS int) AS DTD_IDENTIFIER,
-  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 ROUTINE_BODY,
+  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,
-  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 EXTERNAL_NAME,
+  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,
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,12 +444,12 @@ 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,     6682,   5,      5,      8,      10,     0 # length
+% 11,  18,     34,     6750,   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.\"describe_type\"(c.\"type\", c.\"type_digits\", 
c.\"type_scale\") 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, 
c.\"type_digits\" * 4, 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) a
 s numeric_precision, cast(sys.ifthenelse(c.\"type\" in 
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'), 
2, sys.ifthenelse(c.\"type\" in ('decimal','numeric'), 10, null)) as int) as 
numeric_precision_radix, cast(sys.ifthenelse(c.\"type\" in 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c.\"type_scale\", null) as int) as numeric_scale, 
cast(sys.ifthenelse(c.\"type\" in 
('date','timestamp','timestamptz','time','timetz'), c.\"type_scale\" -1, null) 
as int) as datetime_precision, cast(case c.\"type\" when 'day_interval' then 
'interval day' when 'month_interval' then (case c.\"type_digits\" when 1 then 
'interval year' when 2 then 'interval year to month' when 3 then 'interval 
month' else null end) when 'sec_interval' then (case c.\"type_digits\" when 5 
then 'interval day to hour' when 6 then 'interval day to minute' when 7 then 
'interval day to second' when 8 then 'interval hour' when 9 then 'interval hour 
 to minute' when 10 then 'interval hour to second' when 11 then 'interval 
minute' when 12 then 'interval minute to second' when 13 then 'interval second' 
else null end) else null end as varchar(40)) as interval_type, cast(case 
c.\"type\" when 'day_interval' then 0 when 'month_interval' then 0 when 
'sec_interval' then (sys.ifthenelse(c.\"type_digits\" in (7, 10, 12, 13), 
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\", 3), 0)) else null end as 
int) as interval_precision, cast(null as varchar(1)) as character_set_catalog, 
cast(null as varchar(1)) as character_set_schema, 
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml'), 
'UTF-8', null) as varchar(16)) as character_set_name, 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 varc
 har(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(case when 
c.\"default\" like 'next value for %' then 'YES' else 'NO' end as varchar(3)) 
as is_identity, cast(null as varchar(10)) as identity_generation, cast(null as 
int) as identity_start, cast(null as int) as identity_increment, cast(null as 
int) as identity_maximum, cast(null as int) as identity_minimum, cast(null as 
varchar(3)) as identity_cycle, cast('NO' as varchar(3)) as is_generated, 
cast(null as varchar(1)) 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, ca
 st(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, 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\" order by s.\"name\", t.\"name\", 
c.\"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.\"id\" as varchar(10)) 
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, f.\"mod\" 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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\") 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.ifthe
 nelse(a.\"type\" in ('varchar','clob','char','json','url','xml') and 
a.\"type_digits\" > 0, a.\"type_digits\" * 4, 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 n
 umeric_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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\"), 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, 
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 routine_body, f.\"func\" as 
routine_definition, 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 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_s
 et_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(nu
 ll 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",   "routines",     "create view 
information_schema.routines as select cast(null as varchar(1)) as 
specific_catalog, s.\"name\" as specific_schema, cast(f.\"id\" as varchar(10)) 
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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\") 
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, 
a.\"type_digits\" * 4, 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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\"), 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.\"ifthenel
 se\"(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_c
 ast_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_cardinal
 ity, 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) ord
 er 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    ]
@@ -683,7 +683,7 @@ select 'null in fkeys.delete_action', de
 [ "sys._columns",      "information_schema",   "routines",     "routine_type", 
"varchar",      30,     0,      NULL,   true,   6,      NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"module_catalog",       "varchar",      1,      0,      NULL,   true,   7,      
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"module_schema",        "varchar",      1,      0,      NULL,   true,   8,      
NULL,   NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     "module_name",  
"varchar",      8196,   0,      NULL,   true,   9,      NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     "module_name",  
"varchar",      128,    0,      NULL,   true,   9,      NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_catalog",  
"varchar",      1,      0,      NULL,   true,   10,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_schema",   
"varchar",      1,      0,      NULL,   true,   11,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_name",     
"varchar",      1,      0,      NULL,   true,   12,     NULL,   NULL    ]
@@ -710,9 +710,9 @@ select 'null in fkeys.delete_action', de
 [ "sys._columns",      "information_schema",   "routines",     "scope_name",   
"varchar",      1,      0,      NULL,   true,   33,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"maximum_cardinality",  "int",  32,     0,      NULL,   true,   34,     NULL,   
NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"dtd_identifier",       "int",  32,     0,      NULL,   true,   35,     NULL,   
NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     "routine_body", 
"varchar",      0,      0,      NULL,   true,   36,     NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     "routine_body", 
"varchar",      8196,   0,      NULL,   true,   36,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"routine_definition",   "varchar",      8196,   0,      NULL,   true,   37,     
NULL,   NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     
"external_name",        "varchar",      0,      0,      NULL,   true,   38,     
NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     
"external_name",        "varchar",      1024,   0,      NULL,   true,   38,     
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"external_language",    "varchar",      20,     0,      NULL,   true,   39,     
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"parameter_style",      "char", 7,      0,      NULL,   true,   40,     NULL,   
NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"is_deterministic",     "char", 3,      0,      NULL,   true,   41,     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,12 +444,12 @@ 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,     6682,   5,      5,      8,      10,     0 # length
+% 11,  18,     34,     6750,   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.\"describe_type\"(c.\"type\", c.\"type_digits\", 
c.\"type_scale\") 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, 
c.\"type_digits\" * 4, 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) a
 s numeric_precision, cast(sys.ifthenelse(c.\"type\" in 
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'), 
2, sys.ifthenelse(c.\"type\" in ('decimal','numeric'), 10, null)) as int) as 
numeric_precision_radix, cast(sys.ifthenelse(c.\"type\" in 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c.\"type_scale\", null) as int) as numeric_scale, 
cast(sys.ifthenelse(c.\"type\" in 
('date','timestamp','timestamptz','time','timetz'), c.\"type_scale\" -1, null) 
as int) as datetime_precision, cast(case c.\"type\" when 'day_interval' then 
'interval day' when 'month_interval' then (case c.\"type_digits\" when 1 then 
'interval year' when 2 then 'interval year to month' when 3 then 'interval 
month' else null end) when 'sec_interval' then (case c.\"type_digits\" when 5 
then 'interval day to hour' when 6 then 'interval day to minute' when 7 then 
'interval day to second' when 8 then 'interval hour' when 9 then 'interval hour 
 to minute' when 10 then 'interval hour to second' when 11 then 'interval 
minute' when 12 then 'interval minute to second' when 13 then 'interval second' 
else null end) else null end as varchar(40)) as interval_type, cast(case 
c.\"type\" when 'day_interval' then 0 when 'month_interval' then 0 when 
'sec_interval' then (sys.ifthenelse(c.\"type_digits\" in (7, 10, 12, 13), 
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\", 3), 0)) else null end as 
int) as interval_precision, cast(null as varchar(1)) as character_set_catalog, 
cast(null as varchar(1)) as character_set_schema, 
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml'), 
'UTF-8', null) as varchar(16)) as character_set_name, 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 varc
 har(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(case when 
c.\"default\" like 'next value for %' then 'YES' else 'NO' end as varchar(3)) 
as is_identity, cast(null as varchar(10)) as identity_generation, cast(null as 
int) as identity_start, cast(null as int) as identity_increment, cast(null as 
int) as identity_maximum, cast(null as int) as identity_minimum, cast(null as 
varchar(3)) as identity_cycle, cast('NO' as varchar(3)) as is_generated, 
cast(null as varchar(1)) 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, ca
 st(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, 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\" order by s.\"name\", t.\"name\", 
c.\"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.\"id\" as varchar(10)) 
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, f.\"mod\" 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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\") 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.ifthe
 nelse(a.\"type\" in ('varchar','clob','char','json','url','xml') and 
a.\"type_digits\" > 0, a.\"type_digits\" * 4, 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 n
 umeric_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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\"), 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, 
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 routine_body, f.\"func\" as 
routine_definition, 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 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_s
 et_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(nu
 ll 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",   "routines",     "create view 
information_schema.routines as select cast(null as varchar(1)) as 
specific_catalog, s.\"name\" as specific_schema, cast(f.\"id\" as varchar(10)) 
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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\") 
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, 
a.\"type_digits\" * 4, 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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\"), 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.\"ifthenel
 se\"(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_c
 ast_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_cardinal
 ity, 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) ord
 er 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    ]
@@ -681,7 +681,7 @@ select 'null in fkeys.delete_action', de
 [ "sys._columns",      "information_schema",   "routines",     "routine_type", 
"varchar",      30,     0,      NULL,   true,   6,      NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"module_catalog",       "varchar",      1,      0,      NULL,   true,   7,      
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"module_schema",        "varchar",      1,      0,      NULL,   true,   8,      
NULL,   NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     "module_name",  
"varchar",      8196,   0,      NULL,   true,   9,      NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     "module_name",  
"varchar",      128,    0,      NULL,   true,   9,      NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_catalog",  
"varchar",      1,      0,      NULL,   true,   10,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_schema",   
"varchar",      1,      0,      NULL,   true,   11,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_name",     
"varchar",      1,      0,      NULL,   true,   12,     NULL,   NULL    ]
@@ -708,9 +708,9 @@ select 'null in fkeys.delete_action', de
 [ "sys._columns",      "information_schema",   "routines",     "scope_name",   
"varchar",      1,      0,      NULL,   true,   33,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"maximum_cardinality",  "int",  32,     0,      NULL,   true,   34,     NULL,   
NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"dtd_identifier",       "int",  32,     0,      NULL,   true,   35,     NULL,   
NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     "routine_body", 
"varchar",      0,      0,      NULL,   true,   36,     NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     "routine_body", 
"varchar",      8196,   0,      NULL,   true,   36,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"routine_definition",   "varchar",      8196,   0,      NULL,   true,   37,     
NULL,   NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     
"external_name",        "varchar",      0,      0,      NULL,   true,   38,     
NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     
"external_name",        "varchar",      1024,   0,      NULL,   true,   38,     
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"external_language",    "varchar",      20,     0,      NULL,   true,   39,     
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"parameter_style",      "char", 7,      0,      NULL,   true,   40,     NULL,   
NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"is_deterministic",     "char", 3,      0,      NULL,   true,   41,     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,12 +444,12 @@ 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,     6682,   5,      5,      8,      10,     0 # length
+% 11,  18,     34,     6750,   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.\"describe_type\"(c.\"type\", c.\"type_digits\", 
c.\"type_scale\") 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, 
c.\"type_digits\" * 4, 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) a
 s numeric_precision, cast(sys.ifthenelse(c.\"type\" in 
('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'), 
2, sys.ifthenelse(c.\"type\" in ('decimal','numeric'), 10, null)) as int) as 
numeric_precision_radix, cast(sys.ifthenelse(c.\"type\" in 
('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'),
 c.\"type_scale\", null) as int) as numeric_scale, 
cast(sys.ifthenelse(c.\"type\" in 
('date','timestamp','timestamptz','time','timetz'), c.\"type_scale\" -1, null) 
as int) as datetime_precision, cast(case c.\"type\" when 'day_interval' then 
'interval day' when 'month_interval' then (case c.\"type_digits\" when 1 then 
'interval year' when 2 then 'interval year to month' when 3 then 'interval 
month' else null end) when 'sec_interval' then (case c.\"type_digits\" when 5 
then 'interval day to hour' when 6 then 'interval day to minute' when 7 then 
'interval day to second' when 8 then 'interval hour' when 9 then 'interval hour 
 to minute' when 10 then 'interval hour to second' when 11 then 'interval 
minute' when 12 then 'interval minute to second' when 13 then 'interval second' 
else null end) else null end as varchar(40)) as interval_type, cast(case 
c.\"type\" when 'day_interval' then 0 when 'month_interval' then 0 when 
'sec_interval' then (sys.ifthenelse(c.\"type_digits\" in (7, 10, 12, 13), 
sys.ifthenelse(c.\"type_scale\" > 0, c.\"type_scale\", 3), 0)) else null end as 
int) as interval_precision, cast(null as varchar(1)) as character_set_catalog, 
cast(null as varchar(1)) as character_set_schema, 
cast(sys.ifthenelse(c.\"type\" in ('varchar','clob','char','json','url','xml'), 
'UTF-8', null) as varchar(16)) as character_set_name, 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 varc
 har(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(case when 
c.\"default\" like 'next value for %' then 'YES' else 'NO' end as varchar(3)) 
as is_identity, cast(null as varchar(10)) as identity_generation, cast(null as 
int) as identity_start, cast(null as int) as identity_increment, cast(null as 
int) as identity_maximum, cast(null as int) as identity_minimum, cast(null as 
varchar(3)) as identity_cycle, cast('NO' as varchar(3)) as is_generated, 
cast(null as varchar(1)) 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, ca
 st(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, 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\" order by s.\"name\", t.\"name\", 
c.\"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.\"id\" as varchar(10)) 
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, f.\"mod\" 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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\") 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.ifthe
 nelse(a.\"type\" in ('varchar','clob','char','json','url','xml') and 
a.\"type_digits\" > 0, a.\"type_digits\" * 4, 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 n
 umeric_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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\"), 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, 
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 routine_body, f.\"func\" as 
routine_definition, 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 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_s
 et_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(nu
 ll 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",   "routines",     "create view 
information_schema.routines as select cast(null as varchar(1)) as 
specific_catalog, s.\"name\" as specific_schema, cast(f.\"id\" as varchar(10)) 
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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\") 
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, 
a.\"type_digits\" * 4, 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.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\"), 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.\"ifthenel
 se\"(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_c
 ast_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_cardinal
 ity, 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) ord
 er 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    ]
@@ -683,7 +683,7 @@ select 'null in fkeys.delete_action', de
 [ "sys._columns",      "information_schema",   "routines",     "routine_type", 
"varchar",      30,     0,      NULL,   true,   6,      NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"module_catalog",       "varchar",      1,      0,      NULL,   true,   7,      
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"module_schema",        "varchar",      1,      0,      NULL,   true,   8,      
NULL,   NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     "module_name",  
"varchar",      8196,   0,      NULL,   true,   9,      NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     "module_name",  
"varchar",      128,    0,      NULL,   true,   9,      NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_catalog",  
"varchar",      1,      0,      NULL,   true,   10,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_schema",   
"varchar",      1,      0,      NULL,   true,   11,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     "udt_name",     
"varchar",      1,      0,      NULL,   true,   12,     NULL,   NULL    ]
@@ -710,9 +710,9 @@ select 'null in fkeys.delete_action', de
 [ "sys._columns",      "information_schema",   "routines",     "scope_name",   
"varchar",      1,      0,      NULL,   true,   33,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"maximum_cardinality",  "int",  32,     0,      NULL,   true,   34,     NULL,   
NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"dtd_identifier",       "int",  32,     0,      NULL,   true,   35,     NULL,   
NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     "routine_body", 
"varchar",      0,      0,      NULL,   true,   36,     NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     "routine_body", 
"varchar",      8196,   0,      NULL,   true,   36,     NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"routine_definition",   "varchar",      8196,   0,      NULL,   true,   37,     
NULL,   NULL    ]
-[ "sys._columns",      "information_schema",   "routines",     
"external_name",        "varchar",      0,      0,      NULL,   true,   38,     
NULL,   NULL    ]
+[ "sys._columns",      "information_schema",   "routines",     
"external_name",        "varchar",      1024,   0,      NULL,   true,   38,     
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"external_language",    "varchar",      20,     0,      NULL,   true,   39,     
NULL,   NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"parameter_style",      "char", 7,      0,      NULL,   true,   40,     NULL,   
NULL    ]
 [ "sys._columns",      "information_schema",   "routines",     
"is_deterministic",     "char", 3,      0,      NULL,   true,   41,     NULL,   
NULL    ]
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to