{ ************************************************************************* }
{                                                                           }
{  Licensed Materials - Property of IBM and/or HCL                                     }
{                                                                           }
{  IBM Informix Dynamic Server                                              }
{  (c) Copyright IBM Corporation 2003, 2007 All rights reserved.            }
{  (c) Copyright HCL Technologies Ltd. 2017.  All Rights Reserved.             }
{                                                                           }
{   Title:      boot1000a.sql                                               }
{                                                                           }
{   Description:                                                            }
{       Bootstrapping script for a 10.00 database                           }
{                                                                           }
{ ************************************************************************* }
{                                                                           }
{  ** IMPORTANT - PLEASE READ                                               }
{                                                                           }
{     All types and routines referenced in this file must be prefixed       }
{     with the user name "informix". E.g., use "informix.boolean"           }
{     and not "boolean"                                                     }
{                                                                           }
{     Also, please follow the formatting conventions!!!                     }
{                                                                           }
{     Please ensure that the identifiers that you choose are <= 18          }
{     characters in length. Otherwise the changes would affect database     }
{     reversion.                                                            }
{                                                                           }
{ ************************************************************************* }

{ schema procdures for DRDA clients }

{ keep this as the first procedure in the script			    }
{ check if the given string is a pattern value arg, one with '%' or '_'     }
create procedure informix.is_pattern_arg(str1 varchar(255), options char(4000)) returning integer
    
return 1;
end procedure; 

-- map ids datatypes to db2 types
create function informix.schema_ids2db2(smallint, smallint)
returning smallint 
external name '(schema_ids2db2)'
LANGUAGE C;

create function informix.get_default_value(coltype smallint, colxid smallint, collen integer, defstr lvarchar(256))
returning lvarchar(256)
external name '(get_default_value)'
LANGUAGE C;

create function informix.get_data_type(coltype smallint, xtype integer, is_odbc smallint)
returning smallint
external name '(get_data_type)'
LANGUAGE C;

create function informix.schema_coltypename(coltype smallint, xtype integer)
returning char(18)
external name '(schema_coltypename)'
LANGUAGE C;

create function informix.schema_precision(coltype smallint, xtype integer, collength smallint)
returning int
external name '(schema_precision)'
LANGUAGE C;

create function informix.schema_charlen(coltype smallint, xtype integer, collength smallint)
returning int
external name '(schema_charlen)'
LANGUAGE C;

create function informix.schema_bufflen(coltype smallint, collength smallint)
returning int
external name '(schema_bufflen)'
LANGUAGE C;

create function informix.schema_numscale(coltype smallint, collength smallint)
returning int
external name '(schema_numscale)'
LANGUAGE C;


create function informix.schema_numprecradix( coltype smallint)
returning int
external name '(schema_numprecradix)'
LANGUAGE C;

create function informix.schema_isnullable(coltype smallint)
returning integer
external name '(schema_isnullable)'
LANGUAGE C;

create function informix.schema_nullable(coltype smallint)
returning char(3)
external name '(schema_nullable)'
LANGUAGE C;

create function informix.schema_isautoincr(coltype smallint)
returning char(3)
external name '(schema_isautoincr)'
LANGUAGE C;

create function informix.schema_funccol_type(proc_col_type integer)
returning integer
external name '(schema_funccol_type)'
LANGUAGE C;

create function informix.schema_datetype (coltype smallint, collength smallint)
returning integer
external name '(schema_datetype)'
LANGUAGE C;

create procedure SYSIBM.SQLColPrivileges(
	CatalogName	varchar(128), 
	SchemaName	varchar(128), 
	TableName	varchar(128),
 	ColumnName	varchar(128),
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLColPrivileges)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLColumns(
	CatalogName	varchar(128), 
	SchemaName	varchar(128),
	TableName	varchar(128),
 	ColumnName	varchar(128),
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLColumns)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLForeignKeys(
	PKCatalogName	varchar(128),
	PKSchemaName	varchar(128), 
	PKTableName	varchar(128), 
	FKCatalogName	varchar(128), 
	FKSchemaName	varchar(128), 
	FKTableName	varchar(128),
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLForeignKeys)'
LANGUAGE C
END PROCEDURE;

create function informix.schema_db2ids(smallint) returning smallint
external name '(schema_db2ids)'
LANGUAGE C;

create function informix.schema_keywords(coltype smallint, xtype integer) 
returning varchar(128)
external name '(schema_keywords)'
LANGUAGE C;

create function informix.schema_case_sensitive(coltype smallint, xtype integer) 
returning smallint
external name '(schema_case_sensitive)'
LANGUAGE C;

create function informix.schema_searchable(coltype smallint) 
returning smallint
external name '(schema_searchable)'
LANGUAGE C;
   
create function informix.schema_unsigned_attribute(coltype smallint) 
returning smallint
external name '(schema_unsigned_attribute)'
LANGUAGE C;

create function informix.schema_auto_increment(coltype smallint) 
returning smallint
external name '(schema_auto_increment)'
LANGUAGE C;

create procedure SYSIBM.SQLGetTypeInfo(
	DataType        smallint,
	Options         char(4000))
with (HANDLESNULLS)
external name '(SQLGetTypeInfo)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLPrimaryKeys(
	CatalogName	varchar(128),
	SchemaName	varchar(128), 
	TableName	varchar(128), 
	Options		char(4000))
with (HANDLESNULLS)
external name '(SQLPrimaryKeys)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLProcedureCols(
	CatalogName	varchar(128), 
	SchemaName	varchar(128),
	ProcName	varchar(128), 
	ParamName	varchar(128),
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLProcedureCols)'
LANGUAGE C
END PROCEDURE;


create procedure SYSIBM.SQLProcedures(
	CatalogName	varchar(128), 
	SchemaName	varchar(128),
	ProcName	varchar(128), 
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLProcedures)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLSchemas()
with (HANDLESNULLS)
external name '(SQLSchemas)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLFunctions(
	CatalogName     varchar(128),
        SchemaName      varchar(128),
        FuncName    	varchar(128),
	Options		char(4000))
with (HANDLESNULLS)
external name '(SQLFunctions)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLFunctionCols(
	CatalogName     varchar(128),
        SchemaName      varchar(128),
        FuncName    	varchar(128),
	Paramname	varchar(218),
	Options		char(4000))
with (HANDLESNULLS)
external name '(SQLFunctionCols)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLSuperTables(
	CatalogName     varchar(128),
        SchemaName      varchar(128),
	TableName	varchar(128),
	Options         char(4000))
with (HANDLESNULLS)
external name '(SQLSuperTables)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLSuperTypes(
	CatalogName     varchar(128),
        SchemaName      varchar(128),
        TypeName	varchar(128),
	Options         char(4000))
with (HANDLESNULLS)
external name '(SQLSuperTypes)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLStatistics(
	CatalogName	varchar(128),
	SchemaName	varchar(128), 
	TableName 	varchar(128),
	Unique		Smallint,
	Approximate	Smallint,
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLStatistics)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLTablePrivileges(
	CatalogName	varchar(128),
	SchemaName	varchar(128), 
	TableName 	varchar(128),
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLTablePrivileges)'
LANGUAGE C
END PROCEDURE;


create procedure SYSIBM.SQLTables(
	CatalogName	varchar(128), 
	SchemaName	varchar(128),
 	TableName	varchar(128), 
	TableType_arg	char(4000),
	Options		char(4000)) 
with (HANDLESNULLS)
external name '(SQLTables)'
LANGUAGE C
END PROCEDURE;


create procedure SYSIBM.SQLSpecialColumns(
        ColType         smallint,
        CatalogName     varchar(128),
        SchemaName      varchar(128),
        TableName       varchar(128),
        Scope           smallint,
        Nullable        smallint,
        Options         char(4000)) 
with (HANDLESNULLS)
external name '(SQLSpecialColumns)'
LANGUAGE C
END PROCEDURE;

create function informix.JavaClass(
	s_id  smallint,
	type  smallint,
	mode   char(2))
returning lvarchar(35)
with (HANDLESNULLS)
external name '(get_java_classname)'
LANGUAGE C
END FUNCTION;

create procedure SYSIBM.SQLUDTs(
	CatalogName     varchar(128),
        SchemaName      varchar(128),
	TypeName	varchar(128),
	Type		varchar(18),
	Options		char(4000))
with (HANDLESNULLS)
external name '(SQLUDTs)'
LANGUAGE C
END PROCEDURE;

create function informix.sourcetype_colnum(c_id integer)
returning integer
external name '(get_source_type_numcols)'
LANGUAGE C
END FUNCTION;

create procedure SYSIBM.SQLAttributes(
	CatalogName     varchar(128),
        SchemaName      varchar(128),
        TypeName        varchar(128),
	AttributeName   varchar(128),
	Options         char(4000))
with (HANDLESNULLS)
external name '(SQLAttributes)'
LANGUAGE C
END PROCEDURE;

create procedure SYSIBM.SQLCAMessageCCSID( 
    SQLCode          INTEGER,
    SQLErrml         SMALLINT,
    SQLErrmc         VARCHAR(70),
    SQLErrp          CHAR(8),
    SQLErrd0         INTEGER,
    SQLErrd1         INTEGER,
    SQLErrd2         INTEGER,
    SQLErrd3         INTEGER,
    SQLErrd4         INTEGER,
    SQLErrd5         INTEGER,
    SQLWarn          CHAR(11),
    SQLState         CHAR(5),
    MessageFileName  VARCHAR(20),
    INOUT Locale     VARCHAR(33),
    OUT  Message     LVARCHAR(4096),
    OUT  Rcode       INTEGER,
    INOUT CCSID      INTEGER)
with (HANDLESNULLS)
external name '(SQLCAMessageCCSID)'
LANGUAGE C
END PROCEDURE;


create function informix.metadata_1(
    out allProceduresAreCallable    integer,  /* 1 */
    out allTablesAreSelectable      integer,
    out nullsAreSortedHigh          integer,
    out nullsAreSortedLow           integer,
    out nullsAreSortedAtStart       integer,
    out nullsAreSortedAtEnd         integer,
    out usesLocalFiles              integer,
    out usesLocalFilePerTable       integer,
    out storesUpperCaseIdentifiers  integer,
    out storesLowerCaseIdentifiers  integer,
    out storesMixedCaseIdentifiers  integer,
    out storesUpperCaseQuotedIdentifiers  integer,
    out storesLowerCaseQuotedIdentifiers  integer,
    out storesMixedCaseQuotedIdentifiers  integer,  /* 14 */
    out getSQLKeywords              lvarchar(4096), /* 15 */
    out getNumericFunctions         varchar(150),
    out getStringFunctions          varchar(150),
    out getSystemFunctions          varchar(150),
    out getTimeDateFunctions        varchar(150),
    out getSearchStringEscape       varchar(25),     /* 20 */
    out getExtraNameCharacters      varchar(25),     /* 21 */
    out supportsAlterTableWithAddColumn    integer,
    out supportsAlterTableWithDropColumn   integer,
    out supportsConvert                    integer,
    out supportsConvertType                varchar(255),  /* 25 */
    out supportsDifferentTableCorrelationNames   integer, /* 26 */
    out supportsExpressionsInOrderBy          integer,
    out supportsOrderByUnrelated              integer,
    out supportsGroupBy                       integer,
    out supportsGroupByUnrelated              integer,
    out supportsGroupByBeyondSelect           integer,
    out supportsMultipleResultSets            integer,
    out supportsMultipleTransactions          integer,
    out supportsCoreSQLGrammar                integer,
    out supportsExtendedSQLGrammar            integer,
    out supportsANSI92IntermediateSQL         integer,
    out supportsANSI92FullSQL                 integer,
    out supportsIntegrityEnhancementFacility  integer,
    out supportsOuterJoins                    integer,
    out supportsFullOuterJoins                integer,
    out supportsLimitedOuterJoins             integer,   /* 41 */
    out getSchemaTerm                         varchar(50), /* 42 */
    out getProcedureTerm                      varchar(50),
    out getCatalogTerm                        varchar(50),  /* 44 */
    out isCatalogAtStart                      integer,  /* 45 */
    out getCatalogSeparator                   varchar(50),  /* 46 */
    out supportsSchemasInDataManipulation     integer,  /* 47 */
    out supportsSchemasInProcedureCalls       integer,
    out supportsSchemasInTableDefinitions     integer,
    out supportsSchemasInIndexDefinitions     integer,
    out supportsSchemasInPrivilegeDefinitions integer,
    out supportsCatalogsInDataManipulation    integer,
    out supportsCatalogsInProcedureCalls      integer,
    out supportsCatalogsInTableDefinitions    integer,
    out supportsCatalogsInIndexDefinitions    integer,
    out supportsCatalogsInPrivilegeDefinitions    integer,
    out supportsPositionedDelete              integer,
    out supportsPositionedUpdate              integer,
    out supportsSelectForUpdate               integer,
    out supportsStoredProcedures              integer,
    out supportsSubqueriesInComparisons       integer)
returning integer
with (handlesnulls)
external name '(metadata_1)'
LANGUAGE C;

create function informix.metadata_2(
    out supportsUnion                         integer,  /* 62 */
    out supportsUnionAll                      integer,
    out supportsOpenCursorsAcrossCommit       integer,
    out supportsOpenCursorsAcrossRollback     integer,
    out supportsOpenStatementsAcrossCommit    integer,
    out supportsOpenStatementsAcrossRollback  integer,
    out getMaxBinaryLiteralLength             integer,
    out getMaxCharLiteralLength               integer,
    out getMaxColumnNameLength                integer,   /* 70 */
    out getMaxColumnsInGroupBy                integer,   /* 71 */
    out getMaxColumnsInIndex                  integer,
    out getMaxColumnsInOrderBy                integer,
    out getMaxColumnsInSelect                 integer,
    out getMaxColumnsInTable                  integer,
    out getMaxConnections                     integer,
    out getMaxCursorNameLength                integer,
    out getMaxIndexLength                     integer,
    out getMaxSchemaNameLength                integer,
    out getMaxProcedureNameLength             integer,  /* 80 */
    out getMaxCatalogNameLength               integer,  /* 81 */
    out getMaxRowSize                         integer,
    out doesMaxRowSizeIncludeBlobs            integer,
    out getMaxStatementLength                 integer,
    out getMaxStatements                      integer,
    out getMaxTableNameLength                 integer,
    out getMaxTablesInSelect                  integer,
    out getMaxUserNameLength                  integer,
    out getDefaultTransactionIsolation        integer,
    out supportsTransactions                  integer,   /* 90 */
    out supportsTransactionIsolationLevel     varchar(50),  /* 91 */
    out supportsDataDefinitionAndDataManipulationTransactions   integer,
    out supportsDataManipulationTransactionsOnly     integer,
    out dataDefinitionCausesTransactionCommit        integer,
    out dataDefinitionIgnoredInTransactions          integer,
    out supportsResultSetType                 varchar(50),   /* 96 */
    out supportsResultSetConcurrency          varchar(50),
    out ownUpdatesAreVisible                  varchar(100),
    out ownDeletesAreVisible                  varchar(100),
    out ownInsertsAreVisible                  varchar(100),
    out othersUpdatesAreVisible               varchar(100),
    out othersDeletesAreVisible               varchar(100),
    out othersInsertsAreVisible               varchar(100),
    out updatesAreDetected                    varchar(100),
    out deletesAreDetected                    varchar(100),
    out insertsAreDetected                    varchar(100),  /* 106 */
    out supportsBatchUpdates                  integer,  /* 107 */
    out supportsSavepoints                    integer,
    out supportsGetGeneratedKeys              integer,
    out isANSI                                integer,
    out isLogged                              integer,
    out isBufferedLog                         integer)
returning integer
with ( handlesnulls )
external name '(metadata_2)'
LANGUAGE C;

create procedure SYSIBM.METADATA() returning integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, lvarchar(4096), varchar(100), varchar(100),varchar(100), varchar(100), varchar(25), varchar(25), integer, integer, integer, varchar(255), integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, varchar(50), varchar(50), varchar(50), integer, varchar(50), integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, integer, varchar(50), integer, integer, integer, integer, varchar(100), varchar(100), varchar(100), varchar(100), varchar(100), varchar(100), varchar(100), varchar(100), varchar(100), varchar(100), varchar(100), integer, integer, integer

define r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14 integer;
define r15 lvarchar(4096);
define r16, r17, r18, r19 varchar(100);
define r20, r21 varchar(25);
define r22, r23, r24 integer;

define r25 varchar(255);
define r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 integer;
define r42, r43, r44, r46 varchar(50);
define r45 integer;
define r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61 integer;
define r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r92, r93, r94, r95 integer;
define r91 varchar(50);
define r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106  varchar(100);
define r107, r108, r109, r110, r111, r112 integer;

select o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14, o15, o16, o17, o18, o19, o20, o21, o22, o23, o24, o25, o26, o27, o28, o29, o30, o31, o32, o33, o34, o35, o36, o37, o38, o39, o40, o41, o42, o43, o44, o45, o46, o47, o48, o49, o50, o51, o52, o53, o54, o55, o56, o57, o58, o59, o60, o61 into r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61 from informix.systables where informix.metadata_1(o1 # int, o2 # int, o3 # int, o4 # int, o5 # int, o6 # int, o7 # int, o8 # int, o9 # int, o10 # int, o11 # int, o12 # int, o13 # int, o14 # int, o15 # lvarchar(4096), o16 # varchar(100), o17 # varchar(100), o18 # varchar(100), o19 # varchar(100), o20 # varchar(25), o21 # varchar(25), o22 # int, o23 # int, o24 # int, o25 # varchar(255), o26 # int, o27 # int, o28 # int, o29 # int, o30 # int, o31 # int, o32 # int, o33 # int, o34 # int, o35 # int, o36 # int, o37 # int, o38 # int, o39 # int, o40 # int, o41 # int, o42 # varchar(50), o43 # varchar(50), o44 # varchar(50), o45 # int, o46 # varchar(50), o47 # int, o48 # int, o49 # int, o50 # int, o51 # int, o52 # int, o53 # int, o54 # int, o55 # int, o56 # int, o57 # int, o58 # int, o59 # int, o60 # int, o61 # int) = 1 and tabid = 1;

select o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14, o15, o16, o17, o18, o19, o20, o21, o22, o23, o24, o25, o26, o27, o28, o29, o30, o31, o32, o33, o34, o35, o36, o37, o38, o39, o40, o41, o42, o43, o44, o45, o46, o47, o48, o49, o50, o51 into r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112 from informix.systables where informix.metadata_2(o1 # int, o2 # int, o3 # int, o4 # int, o5 # int, o6 # int, o7 # int, o8 # int, o9 # int, o10 # int, o11 # int, o12 # int, o13 # int, o14 # int, o15 # int, o16 # int, o17 # int, o18 # int, o19 # int, o20 # int, o21 # int, o22 # int, o23 # int, o24 # int, o25 # int, o26 # int, o27 # int, o28 # int, o29 # int, o30 # varchar(50), o31 # int, o32 # int, o33 # int, o34 # int, o35 # varchar(100), o36 # varchar(100), o37 # varchar(100), o38 # varchar(100), o39 # varchar(100), o40 # varchar(100), o41 # varchar(100), o42 # varchar(100), o43 # varchar(100), o44 # varchar(100), o45 # varchar(100), o46 # int, o47 # int, o48 # int, o49 # int, o50 # int, o51 # int) = 1 and tabid = 1;

return r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109 with resume;

end procedure;

-- grant execute permission
grant execute on procedure SYSIBM.SQLColPrivileges( varchar(128), varchar(128),varchar(128), varchar(128), char(4000)) to public as SYSIBM  ;
grant execute on function informix.schema_ids2db2(smallint, smallint) to public as informix;
grant execute on function informix.get_default_value(smallint, smallint, integer,  lvarchar(256)) to public as informix;
grant execute on function informix.get_data_type(smallint, integer, smallint) to public as informix;
grant execute on function informix.schema_coltypename(smallint, integer) to public as informix;
grant execute on function informix.schema_bufflen(smallint, smallint) to public as informix;
grant execute on function informix.schema_precision(smallint, integer, smallint) to public as informix;
grant execute on function informix.schema_charlen(smallint, integer, smallint) to public as informix;
grant execute on function informix.schema_numscale(smallint, smallint) to public as informix;
grant execute on function informix.schema_numprecradix( smallint) to public as informix;
grant execute on function informix.schema_isnullable(smallint) to public as informix;
grant execute on function informix.schema_nullable(smallint) to public as informix;
grant execute on function informix.schema_isautoincr(smallint) to public as informix;
grant execute on function informix.schema_datetype(smallint, smallint) to public as informix;
grant execute on procedure SYSIBM.SQLColumns( varchar(128), varchar(128),varchar(128), varchar(128), char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLForeignKeys( varchar(128), varchar(128), varchar(128), varchar(128), varchar(128), varchar(128),char(4000)) to public as SYSIBM  ;
grant execute on function informix.schema_db2ids(smallint) to public as informix;
grant execute on function informix.schema_keywords(smallint, integer) to public as informix;
grant execute on function informix.schema_case_sensitive(smallint, integer) to public as informix;
grant execute on function informix.schema_searchable(smallint) to public as informix;
grant execute on function informix.schema_unsigned_attribute(smallint) to public as informix;
grant execute on function informix.schema_auto_increment(smallint) to public as informix;
grant execute on function informix.schema_funccol_type(int) to public as informix;
grant execute on procedure SYSIBM.SQLGetTypeInfo(smallint, char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLPrimaryKeys( varchar(128), varchar(128), varchar(128), char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLProcedureCols( varchar(128), varchar(128),varchar(128), varchar(128), char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLProcedures( varchar(128), varchar(128),varchar(128), char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLFunctions(varchar(128), varchar(128),varchar(128), char(4000)) to public as SYSIBM;
grant execute on procedure SYSIBM.SQLFunctionCols( varchar(128), varchar(128),varchar(128), varchar(128), char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLStatistics( varchar(128), varchar(128),varchar(128), smallint, smallint, char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLTablePrivileges( varchar(128), varchar(128),varchar(128), char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLTables( varchar(128), varchar(128),varchar(128), char(4000), char(4000)) to public as SYSIBM  ;
grant execute on procedure SYSIBM.SQLSpecialColumns( smallint, varchar(128), varchar(128), varchar(128), smallint, smallint, char(4000)) to public as SYSIBM;
grant execute on procedure SYSIBM.SQLCAMessageCCSID( integer, smallint, varchar(70), char(8), integer, integer, integer, integer, integer, integer, char(11), char (5), varchar(20), varchar(33), lvarchar(4096), integer, integer) to public as SYSIBM;
grant execute on function SYSIBM.METADATA() to public as SYSIBM;
grant execute on procedure SYSIBM.SQLSuperTypes(varchar(128), varchar(128),varchar(128), char(4000)) to public as SYSIBM;
grant execute on procedure SYSIBM.SQLSuperTables(varchar(128), varchar(128),varchar(128), char(4000)) to public as SYSIBM;
grant execute on function informix.JavaClass(smallint, smallint, char(2)) to public as informix;
grant execute on procedure SYSIBM.SQLUDTs(varchar(128), varchar(128),varchar(128), varchar(18), char(4000)) to public as SYSIBM;
grant execute on function informix.sourcetype_colnum(integer) to public as informix;
grant execute on procedure SYSIBM.SQLAttributes(varchar(128), varchar(128),varchar(128), varchar(128), char(4000)) to public as SYSIBM;
