package DBD::Unify::GetInfo; # The %info hash was automatically generated by # DBI::DBD::Metadata::write_getinfo_pm v2.008696. # And manually reformatted into readable style our $VERSION = 0.10; use strict; use warnings; use DBD::Unify; # Beware: not officially documented interfaces... # use DBI::Const::GetInfoType qw(%GetInfoType); # use DBI::Const::GetInfoReturn qw(%GetInfoReturnTypes %GetInfoReturnValues); my $sql_driver = "Unify"; my $sql_ver_fmt = "%02d.%02d.0000"; # ODBC version string: ##.##.##### my $sql_driver_ver = sprintf $sql_ver_fmt, split m/\./, $DBD::Unify::VERSION; my @Keywords = qw( ACCESS AMOUNT ANSI AUTO BASE BINARY BTREE BUFFER BYTE COBOL COLUMNS CONFIGURATION CONST CONTIGUOUS CURAID CURRENCY DATA DATABASE DBA DEFER DEMOTING DESCRIPTION DEVICE DIRECT DISPLAY DOUBLE_PRECISION EDIT ESTIMATED EXTERN FILEFIXED FORCE HASH HELP HUGE INDICATOR_TYPE LENGTH LINES LINK LOCKS LOGID LOGNAME LONG MODE MOVE OFFSET OVERFLOW OVERWRITE OWNER PATH PIC PICTURE PLI PREALLOCATED PREFERRED PRIVATE RECOVERABLE REGLIKE RELEASING RENAME RESTART ROOT ROWID SCAN SCATTERED SCHEMAS SEGMENT SEPARATE SEPARATOR SHLIKE SHORT SIGN SLOCK SPLIT SQLCODE_TYPE SQL_STANDARD START STATIC STOP SYNONYM TABLES TEXT TRIGGER TYPE UAMT UAMT64 UBINBUF UCHAR UDATE UHAMT UHDATE UINT64 UNIFY_2000 UNLIMITED UNLOCK USE UTIME UTXTBUF VOID VOLATILE VOLUME VOLUMES XLOCK ); sub sql_keywords { return join ",", @Keywords; } # sql_keywords sub sql_data_source_name { my $dbh = shift; return "dbi:$sql_driver:" . $dbh->{Name}; } # sql_data_source_name sub sql_user_name { my $dbh = shift; # CURRENT_USER is a non-standard attribute, probably undef # Username is a standard DBI attribute return $dbh->{CURRENT_USER} || $dbh->{Username}; } # sql_user_name our %info = ( 20 => "Y", # SQL_ACCESSIBLE_PROCEDURES 19 => "Y", # SQL_ACCESSIBLE_TABLES 0 => 1, # SQL_ACTIVE_CONNECTIONS # 116 => undef, # SQL_ACTIVE_ENVIRONMENTS 1 => 0, # SQL_ACTIVE_STATEMENTS # 169 => undef, # SQL_AGGREGATE_FUNCTIONS # 117 => undef, # SQL_ALTER_DOMAIN 86 => 3, # SQL_ALTER_TABLE # 10021 => undef, # SQL_ASYNC_MODE # 120 => undef, # SQL_BATCH_ROW_COUNT # 121 => undef, # SQL_BATCH_SUPPORT 82 => 0, # SQL_BOOKMARK_PERSISTENCE # 114 => 0, # SQL_CATALOG_LOCATION # 10003 => undef, # SQL_CATALOG_NAME # 41 => "", # SQL_CATALOG_NAME_SEPARATOR # 42 => "", # SQL_CATALOG_TERM # 92 => 0, # SQL_CATALOG_USAGE # 10004 => undef, # SQL_COLLATING_SEQUENCE # 10004 => undef, # SQL_COLLATION_SEQ 87 => "N", # SQL_COLUMN_ALIAS 22 => 1, # SQL_CONCAT_NULL_BEHAVIOR 53 => 0, # SQL_CONVERT_BIGINT 54 => 0, # SQL_CONVERT_BINARY 55 => 0, # SQL_CONVERT_BIT 56 => 0, # SQL_CONVERT_CHAR 57 => 0, # SQL_CONVERT_DATE 58 => 0, # SQL_CONVERT_DECIMAL 59 => 0, # SQL_CONVERT_DOUBLE 60 => 0, # SQL_CONVERT_FLOAT 48 => 0, # SQL_CONVERT_FUNCTIONS # 173 => undef, # SQL_CONVERT_GUID 61 => 0, # SQL_CONVERT_INTEGER # 123 => undef, # SQL_CONVERT_INTERVAL_DAY_TIME # 124 => undef, # SQL_CONVERT_INTERVAL_YEAR_MONTH 71 => 0, # SQL_CONVERT_LONGVARBINARY 62 => 0, # SQL_CONVERT_LONGVARCHAR 63 => 0, # SQL_CONVERT_NUMERIC 64 => 0, # SQL_CONVERT_REAL 65 => 0, # SQL_CONVERT_SMALLINT 66 => 0, # SQL_CONVERT_TIME 67 => 0, # SQL_CONVERT_TIMESTAMP 68 => 0, # SQL_CONVERT_TINYINT 69 => 0, # SQL_CONVERT_VARBINARY 70 => 0, # SQL_CONVERT_VARCHAR # 122 => undef, # SQL_CONVERT_WCHAR # 125 => undef, # SQL_CONVERT_WLONGVARCHAR # 126 => undef, # SQL_CONVERT_WVARCHAR 74 => 2, # SQL_CORRELATION_NAME # 127 => undef, # SQL_CREATE_ASSERTION # 128 => undef, # SQL_CREATE_CHARACTER_SET # 129 => undef, # SQL_CREATE_COLLATION # 130 => undef, # SQL_CREATE_DOMAIN # 131 => undef, # SQL_CREATE_SCHEMA # 132 => undef, # SQL_CREATE_TABLE # 133 => undef, # SQL_CREATE_TRANSLATION # 134 => undef, # SQL_CREATE_VIEW 23 => 0, # SQL_CURSOR_COMMIT_BEHAVIOR 24 => 0, # SQL_CURSOR_ROLLBACK_BEHAVIOR # 10001 => undef, # SQL_CURSOR_SENSITIVITY 16 => "$ENV{DBPATH}/file.db", # SQL_DATABASE_NAME 2 => \&sql_data_source_name, # SQL_DATA_SOURCE_NAME 25 => "N", # SQL_DATA_SOURCE_READ_ONLY # 119 => undef, # SQL_DATETIME_LITERALS 17 => "Unify DataServer", # SQL_DBMS_NAME # 18 => "08.03.0000", # SQL_DBMS_VER # 18 => "08.03.0000", # SQL_DBMS_VERSION # 170 => undef, # SQL_DDL_INDEX 26 => 8, # SQL_DEFAULT_TRANSACTION_ISOLATION 26 => 8, # SQL_DEFAULT_TXN_ISOLATION # 10002 => undef, # SQL_DESCRIBE_PARAMETER 171 => "03.52.1132.0000", # SQL_DM_VER 3 => 2388864, # SQL_DRIVER_HDBC # 135 => undef, # SQL_DRIVER_HDESC 4 => 2388832, # SQL_DRIVER_HENV # 76 => undef, # SQL_DRIVER_HLIB # 5 => undef, # SQL_DRIVER_HSTMT 6 => $INC{"DBD/Unify.pm"}, # SQL_DRIVER_NAME 77 => "02.50", # SQL_DRIVER_ODBC_VER 7 => $sql_driver_ver, # SQL_DRIVER_VER # 136 => undef, # SQL_DROP_ASSERTION # 137 => undef, # SQL_DROP_CHARACTER_SET # 138 => undef, # SQL_DROP_COLLATION # 139 => undef, # SQL_DROP_DOMAIN # 140 => undef, # SQL_DROP_SCHEMA # 141 => undef, # SQL_DROP_TABLE # 142 => undef, # SQL_DROP_TRANSLATION # 143 => undef, # SQL_DROP_VIEW 144 => 1, # SQL_DYNAMIC_CURSOR_ATTRIBUTES1 # 145 => undef, # SQL_DYNAMIC_CURSOR_ATTRIBUTES2 27 => "Y", # SQL_EXPRESSIONS_IN_ORDERBY 8 => 1, # SQL_FETCH_DIRECTION 84 => 0, # SQL_FILE_USAGE 146 => 1, # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 # 147 => undef, # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 81 => 3, # SQL_GETDATA_EXTENSIONS 88 => 2, # SQL_GROUP_BY 28 => 3, # SQL_IDENTIFIER_CASE 29 => '"', # SQL_IDENTIFIER_QUOTE_CHAR # 148 => undef, # SQL_INDEX_KEYWORDS # 149 => undef, # SQL_INFO_SCHEMA_VIEWS # 172 => undef, # SQL_INSERT_STATEMENT 73 => "N", # SQL_INTEGRITY 150 => 1, # SQL_KEYSET_CURSOR_ATTRIBUTES1 # 151 => undef, # SQL_KEYSET_CURSOR_ATTRIBUTES2 89 => \&sql_keywords, # SQL_KEYWORDS 113 => "N", # SQL_LIKE_ESCAPE_CLAUSE 78 => 0, # SQL_LOCK_TYPES # 34 => 18, # SQL_MAXIMUM_CATALOG_NAME_LENGTH 97 => 0, # SQL_MAXIMUM_COLUMNS_IN_GROUP_BY 98 => 0, # SQL_MAXIMUM_COLUMNS_IN_INDEX 99 => 0, # SQL_MAXIMUM_COLUMNS_IN_ORDER_BY 100 => 0, # SQL_MAXIMUM_COLUMNS_IN_SELECT 101 => 0, # SQL_MAXIMUM_COLUMNS_IN_TABLE 30 => 44, # SQL_MAXIMUM_COLUMN_NAME_LENGTH 1 => 0, # SQL_MAXIMUM_CONCURRENT_ACTIVITIES 31 => 18, # SQL_MAXIMUM_CURSOR_NAME_LENGTH 0 => 1, # SQL_MAXIMUM_DRIVER_CONNECTIONS # 10005 => undef, # SQL_MAXIMUM_IDENTIFIER_LENGTH 102 => 0, # SQL_MAXIMUM_INDEX_SIZE 104 => 2147483647, # SQL_MAXIMUM_ROW_SIZE 32 => 18, # SQL_MAXIMUM_SCHEMA_NAME_LENGTH 105 => 8192, # SQL_MAXIMUM_STATEMENT_LENGTH # 20000 => undef, # SQL_MAXIMUM_STMT_OCTETS # 20001 => undef, # SQL_MAXIMUM_STMT_OCTETS_DATA # 20002 => undef, # SQL_MAXIMUM_STMT_OCTETS_SCHEMA 106 => 0, # SQL_MAXIMUM_TABLES_IN_SELECT 35 => 44, # SQL_MAXIMUM_TABLE_NAME_LENGTH 107 => 44, # SQL_MAXIMUM_USER_NAME_LENGTH # 10022 => undef, # SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 112 => 255, # SQL_MAX_BINARY_LITERAL_LEN # 34 => 18, # SQL_MAX_CATALOG_NAME_LEN 108 => 255, # SQL_MAX_CHAR_LITERAL_LEN 97 => 0, # SQL_MAX_COLUMNS_IN_GROUP_BY 98 => 0, # SQL_MAX_COLUMNS_IN_INDEX 99 => 0, # SQL_MAX_COLUMNS_IN_ORDER_BY 100 => 0, # SQL_MAX_COLUMNS_IN_SELECT 101 => 0, # SQL_MAX_COLUMNS_IN_TABLE 30 => 44, # SQL_MAX_COLUMN_NAME_LEN 1 => 0, # SQL_MAX_CONCURRENT_ACTIVITIES 31 => 18, # SQL_MAX_CURSOR_NAME_LEN 0 => 1, # SQL_MAX_DRIVER_CONNECTIONS # 10005 => undef, # SQL_MAX_IDENTIFIER_LEN 102 => 0, # SQL_MAX_INDEX_SIZE 32 => 18, # SQL_MAX_OWNER_NAME_LEN 33 => 44, # SQL_MAX_PROCEDURE_NAME_LEN 34 => 18, # SQL_MAX_QUALIFIER_NAME_LEN 104 => 2147483647, # SQL_MAX_ROW_SIZE 103 => "Y", # SQL_MAX_ROW_SIZE_INCLUDES_LONG 32 => 18, # SQL_MAX_SCHEMA_NAME_LEN 105 => 8192, # SQL_MAX_STATEMENT_LEN 106 => 0, # SQL_MAX_TABLES_IN_SELECT 35 => 44, # SQL_MAX_TABLE_NAME_LEN 107 => 44, # SQL_MAX_USER_NAME_LEN 37 => "Y", # SQL_MULTIPLE_ACTIVE_TXN 36 => "N", # SQL_MULT_RESULT_SETS 111 => "N", # SQL_NEED_LONG_DATA_LEN 75 => 1, # SQL_NON_NULLABLE_COLUMNS 85 => 1, # SQL_NULL_COLLATION 49 => 0, # SQL_NUMERIC_FUNCTIONS 9 => 2, # SQL_ODBC_API_CONFORMANCE # 152 => undef, # SQL_ODBC_INTERFACE_CONFORMANCE 12 => 1, # SQL_ODBC_SAG_CLI_CONFORMANCE 15 => 1, # SQL_ODBC_SQL_CONFORMANCE 73 => "N", # SQL_ODBC_SQL_OPT_IEF 10 => "03.52.0000", # SQL_ODBC_VER # 115 => undef, # SQL_OJ_CAPABILITIES 90 => "Y", # SQL_ORDER_BY_COLUMNS_IN_SELECT 38 => "N", # SQL_OUTER_JOINS # 115 => undef, # SQL_OUTER_JOIN_CAPABILITIES 39 => "Owner", # SQL_OWNER_TERM 91 => 31, # SQL_OWNER_USAGE # 153 => undef, # SQL_PARAM_ARRAY_ROW_COUNTS # 154 => undef, # SQL_PARAM_ARRAY_SELECTS 80 => 0, # SQL_POSITIONED_STATEMENTS 79 => 0, # SQL_POS_OPERATIONS 21 => "Y", # SQL_PROCEDURES 40 => "Procedure", # SQL_PROCEDURE_TERM 114 => 0, # SQL_QUALIFIER_LOCATION 41 => ".", # SQL_QUALIFIER_NAME_SEPARATOR 42 => "", # SQL_QUALIFIER_TERM 92 => 0, # SQL_QUALIFIER_USAGE 93 => 3, # SQL_QUOTED_IDENTIFIER_CASE 11 => "Y", # SQL_ROW_UPDATES 39 => "Owner", # SQL_SCHEMA_TERM 91 => 31, # SQL_SCHEMA_USAGE 43 => 1, # SQL_SCROLL_CONCURRENCY 44 => 1, # SQL_SCROLL_OPTIONS 14 => "\\", # SQL_SEARCH_PATTERN_ESCAPE 13 => "", # SQL_SERVER_NAME 94 => "", # SQL_SPECIAL_CHARACTERS # 155 => undef, # SQL_SQL92_DATETIME_FUNCTIONS # 156 => undef, # SQL_SQL92_FOREIGN_KEY_DELETE_RULE # 157 => undef, # SQL_SQL92_FOREIGN_KEY_UPDATE_RULE # 158 => undef, # SQL_SQL92_GRANT # 159 => undef, # SQL_SQL92_NUMERIC_VALUE_FUNCTIONS # 160 => undef, # SQL_SQL92_PREDICATES # 161 => undef, # SQL_SQL92_RELATIONAL_JOIN_OPERATORS # 162 => undef, # SQL_SQL92_REVOKE # 163 => undef, # SQL_SQL92_ROW_VALUE_CONSTRUCTOR # 164 => undef, # SQL_SQL92_STRING_FUNCTIONS # 165 => undef, # SQL_SQL92_VALUE_EXPRESSIONS # 118 => undef, # SQL_SQL_CONFORMANCE # 166 => undef, # SQL_STANDARD_CLI_CONFORMANCE 167 => 1, # SQL_STATIC_CURSOR_ATTRIBUTES1 # 168 => undef, # SQL_STATIC_CURSOR_ATTRIBUTES2 83 => 0, # SQL_STATIC_SENSITIVITY 50 => 0, # SQL_STRING_FUNCTIONS 95 => 15, # SQL_SUBQUERIES 51 => 0, # SQL_SYSTEM_FUNCTIONS 45 => "Table", # SQL_TABLE_TERM 109 => 0, # SQL_TIMEDATE_ADD_INTERVALS 110 => 0, # SQL_TIMEDATE_DIFF_INTERVALS 52 => 0, # SQL_TIMEDATE_FUNCTIONS 46 => 1, # SQL_TRANSACTION_CAPABLE 72 => 15, # SQL_TRANSACTION_ISOLATION_OPTION 46 => 1, # SQL_TXN_CAPABLE 72 => 15, # SQL_TXN_ISOLATION_OPTION 96 => 3, # SQL_UNION 96 => 3, # SQL_UNION_STATEMENT 47 => \&sql_user_name, # SQL_USER_NAME # 10000 => undef, # SQL_XOPEN_CLI_YEAR ); 1;