diff -r 7659931b2194 -r ead96bc104ea common/tools/lib/DBD/mysql/GetInfo.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common/tools/lib/DBD/mysql/GetInfo.pm Tue Jul 13 14:37:59 2010 +0100 @@ -0,0 +1,306 @@ +package DBD::mysql::GetInfo; +######################################## +# DBD::mysql::GetInfo +# +# +# Generated by DBI::DBD::Metadata +# $Author$ <-- the person to blame +# $Revision$ +# $Date$ + +use strict; +use DBD::mysql; +# Beware: not officially documented interfaces... +# use DBI::Const::GetInfoType qw(%GetInfoType); +# use DBI::Const::GetInfoReturn qw(%GetInfoReturnTypes %GetInfoReturnValues); + +my $sql_driver = 'mysql'; +my $sql_ver_fmt = '%02d.%02d.%04d'; # ODBC version string: ##.##.##### +my $sql_driver_ver = do { + no warnings; + sprintf $sql_ver_fmt, split (/./, $DBD::mysql::VERSION); +}; + +my @Keywords = qw( + +BIGINT +BLOB +DEFAULT +KEYS +LIMIT +LONGBLOB +MEDIMUMBLOB +MEDIUMINT +MEDIUMTEXT +PROCEDURE +REGEXP +RLIKE +SHOW +TABLES +TINYBLOB +TINYTEXT +UNIQUE +UNSIGNED +ZEROFILL +); + + +sub sql_keywords { + + return join ',', @Keywords; + +} + + + +sub sql_data_source_name { + my $dbh = shift; + return "dbi:$sql_driver:" . $dbh->{Name}; +} + +sub sql_user_name { + my $dbh = shift; + # Non-standard attribute + return $dbh->{CURRENT_USER}; +} + + +#################### +# makefunc() +# returns a ref to a sub that that calls into XS to get +# values for info types that must needs be coded in C + +sub makefunk ($) { + my $type = shift; + return sub {dbd_mysql_get_info(shift, $type)} +} + + + + +our %info = ( + 20 => 'N', # SQL_ACCESSIBLE_PROCEDURES + 19 => 'Y', # SQL_ACCESSIBLE_TABLES + 0 => 0, # SQL_ACTIVE_CONNECTIONS + 116 => 0, # SQL_ACTIVE_ENVIRONMENTS + 1 => 0, # SQL_ACTIVE_STATEMENTS + 169 => 127, # SQL_AGGREGATE_FUNCTIONS + 117 => 0, # SQL_ALTER_DOMAIN + 86 => 3, # SQL_ALTER_TABLE + 10021 => 0, # SQL_ASYNC_MODE + 120 => 2, # SQL_BATCH_ROW_COUNT + 121 => 2, # SQL_BATCH_SUPPORT + 82 => 0, # SQL_BOOKMARK_PERSISTENCE + 114 => 1, # SQL_CATALOG_LOCATION + 10003 => 'Y', # SQL_CATALOG_NAME + 41 => makefunk 41, # SQL_CATALOG_NAME_SEPARATOR + 42 => makefunk 42, # SQL_CATALOG_TERM + 92 => 29, # SQL_CATALOG_USAGE + 10004 => '', # SQL_COLLATING_SEQUENCE + 10004 => '', # SQL_COLLATION_SEQ + 87 => 'Y', # SQL_COLUMN_ALIAS + 22 => 0, # SQL_CONCAT_NULL_BEHAVIOR + 53 => 259071, # SQL_CONVERT_BIGINT + 54 => 0, # SQL_CONVERT_BINARY + 55 => 259071, # SQL_CONVERT_BIT + 56 => 259071, # SQL_CONVERT_CHAR + 57 => 259071, # SQL_CONVERT_DATE + 58 => 259071, # SQL_CONVERT_DECIMAL + 59 => 259071, # SQL_CONVERT_DOUBLE + 60 => 259071, # SQL_CONVERT_FLOAT + 48 => 0, # SQL_CONVERT_FUNCTIONS +# 173 => undef, # SQL_CONVERT_GUID + 61 => 259071, # SQL_CONVERT_INTEGER + 123 => 0, # SQL_CONVERT_INTERVAL_DAY_TIME + 124 => 0, # SQL_CONVERT_INTERVAL_YEAR_MONTH + 71 => 0, # SQL_CONVERT_LONGVARBINARY + 62 => 259071, # SQL_CONVERT_LONGVARCHAR + 63 => 259071, # SQL_CONVERT_NUMERIC + 64 => 259071, # SQL_CONVERT_REAL + 65 => 259071, # SQL_CONVERT_SMALLINT + 66 => 259071, # SQL_CONVERT_TIME + 67 => 259071, # SQL_CONVERT_TIMESTAMP + 68 => 259071, # SQL_CONVERT_TINYINT + 69 => 0, # SQL_CONVERT_VARBINARY + 70 => 259071, # SQL_CONVERT_VARCHAR + 122 => 0, # SQL_CONVERT_WCHAR + 125 => 0, # SQL_CONVERT_WLONGVARCHAR + 126 => 0, # SQL_CONVERT_WVARCHAR + 74 => 1, # SQL_CORRELATION_NAME + 127 => 0, # SQL_CREATE_ASSERTION + 128 => 0, # SQL_CREATE_CHARACTER_SET + 129 => 0, # SQL_CREATE_COLLATION + 130 => 0, # SQL_CREATE_DOMAIN + 131 => 0, # SQL_CREATE_SCHEMA + 132 => 1045, # SQL_CREATE_TABLE + 133 => 0, # SQL_CREATE_TRANSLATION + 134 => 0, # SQL_CREATE_VIEW + 23 => 2, # SQL_CURSOR_COMMIT_BEHAVIOR + 24 => 2, # SQL_CURSOR_ROLLBACK_BEHAVIOR + 10001 => 0, # SQL_CURSOR_SENSITIVITY + 2 => \&sql_data_source_name, # SQL_DATA_SOURCE_NAME + 25 => 'N', # SQL_DATA_SOURCE_READ_ONLY + 119 => 7, # SQL_DATETIME_LITERALS + 17 => 'MySQL', # SQL_DBMS_NAME + 18 => makefunk 18, # SQL_DBMS_VER + 170 => 3, # SQL_DDL_INDEX + 26 => 2, # SQL_DEFAULT_TRANSACTION_ISOLATION + 26 => 2, # SQL_DEFAULT_TXN_ISOLATION + 10002 => 'N', # SQL_DESCRIBE_PARAMETER +# 171 => undef, # SQL_DM_VER + 3 => 137076632, # SQL_DRIVER_HDBC +# 135 => undef, # SQL_DRIVER_HDESC + 4 => 137076088, # SQL_DRIVER_HENV +# 76 => undef, # SQL_DRIVER_HLIB +# 5 => undef, # SQL_DRIVER_HSTMT + 6 => 'libmyodbc3.so', # SQL_DRIVER_NAME + 77 => '03.51', # SQL_DRIVER_ODBC_VER + 7 => $sql_driver_ver, # SQL_DRIVER_VER + 136 => 0, # SQL_DROP_ASSERTION + 137 => 0, # SQL_DROP_CHARACTER_SET + 138 => 0, # SQL_DROP_COLLATION + 139 => 0, # SQL_DROP_DOMAIN + 140 => 0, # SQL_DROP_SCHEMA + 141 => 7, # SQL_DROP_TABLE + 142 => 0, # SQL_DROP_TRANSLATION + 143 => 0, # SQL_DROP_VIEW + 144 => 0, # SQL_DYNAMIC_CURSOR_ATTRIBUTES1 + 145 => 0, # SQL_DYNAMIC_CURSOR_ATTRIBUTES2 + 27 => 'Y', # SQL_EXPRESSIONS_IN_ORDERBY + 8 => 63, # SQL_FETCH_DIRECTION + 84 => 0, # SQL_FILE_USAGE + 146 => 97863, # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 + 147 => 6016, # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 + 81 => 11, # SQL_GETDATA_EXTENSIONS + 88 => 3, # SQL_GROUP_BY + 28 => 4, # SQL_IDENTIFIER_CASE + #29 => sub {dbd_mysql_get_info(shift,$GetInfoType {SQL_IDENTIFIER_QUOTE_CHAR})}, + 29 => makefunk 29, # SQL_IDENTIFIER_QUOTE_CHAR + 148 => 0, # SQL_INDEX_KEYWORDS + 149 => 0, # SQL_INFO_SCHEMA_VIEWS + 172 => 7, # SQL_INSERT_STATEMENT + 73 => 'N', # SQL_INTEGRITY + 150 => 0, # SQL_KEYSET_CURSOR_ATTRIBUTES1 + 151 => 0, # SQL_KEYSET_CURSOR_ATTRIBUTES2 + 89 => \&sql_keywords, # SQL_KEYWORDS + 113 => 'Y', # SQL_LIKE_ESCAPE_CLAUSE + 78 => 0, # SQL_LOCK_TYPES + 34 => 64, # SQL_MAXIMUM_CATALOG_NAME_LENGTH + 97 => 0, # SQL_MAXIMUM_COLUMNS_IN_GROUP_BY + 98 => 32, # 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 => 64, # SQL_MAXIMUM_COLUMN_NAME_LENGTH + 1 => 0, # SQL_MAXIMUM_CONCURRENT_ACTIVITIES + 31 => 18, # SQL_MAXIMUM_CURSOR_NAME_LENGTH + 0 => 0, # SQL_MAXIMUM_DRIVER_CONNECTIONS + 10005 => 64, # SQL_MAXIMUM_IDENTIFIER_LENGTH + 102 => 500, # SQL_MAXIMUM_INDEX_SIZE + 104 => 0, # SQL_MAXIMUM_ROW_SIZE + 32 => 0, # SQL_MAXIMUM_SCHEMA_NAME_LENGTH + 105 => makefunk 105, # 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 => makefunk 106, # SQL_MAXIMUM_TABLES_IN_SELECT + 35 => 64, # SQL_MAXIMUM_TABLE_NAME_LENGTH + 107 => 16, # SQL_MAXIMUM_USER_NAME_LENGTH + 10022 => 0, # SQL_MAX_ASYNC_CONCURRENT_STATEMENTS + 112 => 0, # SQL_MAX_BINARY_LITERAL_LEN + 34 => 64, # SQL_MAX_CATALOG_NAME_LEN + 108 => 0, # SQL_MAX_CHAR_LITERAL_LEN + 97 => 0, # SQL_MAX_COLUMNS_IN_GROUP_BY + 98 => 32, # 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 => 64, # SQL_MAX_COLUMN_NAME_LEN + 1 => 0, # SQL_MAX_CONCURRENT_ACTIVITIES + 31 => 18, # SQL_MAX_CURSOR_NAME_LEN + 0 => 0, # SQL_MAX_DRIVER_CONNECTIONS + 10005 => 64, # SQL_MAX_IDENTIFIER_LEN + 102 => 500, # SQL_MAX_INDEX_SIZE + 32 => 0, # SQL_MAX_OWNER_NAME_LEN + 33 => 0, # SQL_MAX_PROCEDURE_NAME_LEN + 34 => 64, # SQL_MAX_QUALIFIER_NAME_LEN + 104 => 0, # SQL_MAX_ROW_SIZE + 103 => 'Y', # SQL_MAX_ROW_SIZE_INCLUDES_LONG + 32 => 0, # SQL_MAX_SCHEMA_NAME_LEN + 105 => 8192, # SQL_MAX_STATEMENT_LEN + 106 => 31, # SQL_MAX_TABLES_IN_SELECT + 35 => makefunk 35, # SQL_MAX_TABLE_NAME_LEN + 107 => 16, # SQL_MAX_USER_NAME_LEN + 37 => 'Y', # SQL_MULTIPLE_ACTIVE_TXN + 36 => 'Y', # SQL_MULT_RESULT_SETS + 111 => 'N', # SQL_NEED_LONG_DATA_LEN + 75 => 1, # SQL_NON_NULLABLE_COLUMNS + 85 => 2, # SQL_NULL_COLLATION + 49 => 16777215, # SQL_NUMERIC_FUNCTIONS + 9 => 1, # SQL_ODBC_API_CONFORMANCE + 152 => 2, # 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.80', # SQL_ODBC_VER + 115 => 123, # SQL_OJ_CAPABILITIES + 90 => 'Y', # SQL_ORDER_BY_COLUMNS_IN_SELECT + 38 => 'Y', # SQL_OUTER_JOINS + 115 => 123, # SQL_OUTER_JOIN_CAPABILITIES + 39 => '', # SQL_OWNER_TERM + 91 => 0, # SQL_OWNER_USAGE + 153 => 2, # SQL_PARAM_ARRAY_ROW_COUNTS + 154 => 3, # SQL_PARAM_ARRAY_SELECTS + 80 => 3, # SQL_POSITIONED_STATEMENTS + 79 => 31, # SQL_POS_OPERATIONS + 21 => 'N', # SQL_PROCEDURES + 40 => '', # SQL_PROCEDURE_TERM + 114 => 1, # SQL_QUALIFIER_LOCATION + 41 => '.', # SQL_QUALIFIER_NAME_SEPARATOR + 42 => 'database', # SQL_QUALIFIER_TERM + 92 => 29, # SQL_QUALIFIER_USAGE + 93 => 3, # SQL_QUOTED_IDENTIFIER_CASE + 11 => 'N', # SQL_ROW_UPDATES + 39 => '', # SQL_SCHEMA_TERM + 91 => 0, # SQL_SCHEMA_USAGE + 43 => 7, # SQL_SCROLL_CONCURRENCY + 44 => 17, # SQL_SCROLL_OPTIONS + 14 => '\\', # SQL_SEARCH_PATTERN_ESCAPE + 13 => makefunk 13, # SQL_SERVER_NAME + 94 => 'ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜáíóúñÑ', # SQL_SPECIAL_CHARACTERS + 155 => 7, # SQL_SQL92_DATETIME_FUNCTIONS + 156 => 0, # SQL_SQL92_FOREIGN_KEY_DELETE_RULE + 157 => 0, # SQL_SQL92_FOREIGN_KEY_UPDATE_RULE + 158 => 8160, # SQL_SQL92_GRANT + 159 => 0, # SQL_SQL92_NUMERIC_VALUE_FUNCTIONS + 160 => 0, # SQL_SQL92_PREDICATES + 161 => 466, # SQL_SQL92_RELATIONAL_JOIN_OPERATORS + 162 => 32640, # SQL_SQL92_REVOKE + 163 => 7, # SQL_SQL92_ROW_VALUE_CONSTRUCTOR + 164 => 255, # SQL_SQL92_STRING_FUNCTIONS + 165 => 0, # SQL_SQL92_VALUE_EXPRESSIONS + 118 => 4, # SQL_SQL_CONFORMANCE + 166 => 2, # SQL_STANDARD_CLI_CONFORMANCE + 167 => 97863, # SQL_STATIC_CURSOR_ATTRIBUTES1 + 168 => 6016, # SQL_STATIC_CURSOR_ATTRIBUTES2 + 83 => 7, # SQL_STATIC_SENSITIVITY + 50 => 491519, # SQL_STRING_FUNCTIONS + 95 => 0, # SQL_SUBQUERIES + 51 => 7, # SQL_SYSTEM_FUNCTIONS + 45 => 'table', # SQL_TABLE_TERM + 109 => 0, # SQL_TIMEDATE_ADD_INTERVALS + 110 => 0, # SQL_TIMEDATE_DIFF_INTERVALS + 52 => 106495, # SQL_TIMEDATE_FUNCTIONS + 46 => 3, # SQL_TRANSACTION_CAPABLE + 72 => 15, # SQL_TRANSACTION_ISOLATION_OPTION + 46 => 3, # SQL_TXN_CAPABLE + 72 => 15, # SQL_TXN_ISOLATION_OPTION + 96 => 0, # SQL_UNION + 96 => 0, # SQL_UNION_STATEMENT + 47 => \&sql_user_name, # SQL_USER_NAME + 10000 => 1992, # SQL_XOPEN_CLI_YEAR +); + +1; + +__END__