common/tools/lib/DBD/mysql/GetInfo.pm
changeset 1174 ead96bc104ea
equal deleted inserted replaced
1173:7659931b2194 1174:ead96bc104ea
       
     1 package DBD::mysql::GetInfo;
       
     2 ########################################
       
     3 #  DBD::mysql::GetInfo
       
     4 #
       
     5 #
       
     6 # Generated by DBI::DBD::Metadata
       
     7 # $Author$  <-- the person to blame
       
     8 # $Revision$
       
     9 # $Date$
       
    10 
       
    11 use strict;
       
    12 use DBD::mysql;
       
    13 # Beware: not officially documented interfaces...
       
    14 # use DBI::Const::GetInfoType qw(%GetInfoType);
       
    15 # use DBI::Const::GetInfoReturn qw(%GetInfoReturnTypes %GetInfoReturnValues);
       
    16 
       
    17 my $sql_driver = 'mysql';
       
    18 my $sql_ver_fmt = '%02d.%02d.%04d';   # ODBC version string: ##.##.#####
       
    19 my $sql_driver_ver = do {
       
    20     no warnings;
       
    21     sprintf $sql_ver_fmt, split (/./, $DBD::mysql::VERSION);
       
    22 };
       
    23 
       
    24 my @Keywords = qw(
       
    25 
       
    26 BIGINT
       
    27 BLOB
       
    28 DEFAULT
       
    29 KEYS
       
    30 LIMIT
       
    31 LONGBLOB
       
    32 MEDIMUMBLOB
       
    33 MEDIUMINT
       
    34 MEDIUMTEXT
       
    35 PROCEDURE
       
    36 REGEXP
       
    37 RLIKE
       
    38 SHOW
       
    39 TABLES
       
    40 TINYBLOB
       
    41 TINYTEXT
       
    42 UNIQUE
       
    43 UNSIGNED
       
    44 ZEROFILL
       
    45 );
       
    46 
       
    47 
       
    48 sub sql_keywords {
       
    49 
       
    50     return join ',', @Keywords;
       
    51 
       
    52 }
       
    53 
       
    54 
       
    55 
       
    56 sub sql_data_source_name {
       
    57     my $dbh = shift;
       
    58     return "dbi:$sql_driver:" . $dbh->{Name};
       
    59 }
       
    60 
       
    61 sub sql_user_name {
       
    62     my $dbh = shift;
       
    63     # Non-standard attribute
       
    64     return $dbh->{CURRENT_USER};
       
    65 }
       
    66 
       
    67 
       
    68 ####################
       
    69 # makefunc()
       
    70 # returns a ref to a sub that that calls into  XS to get 
       
    71 # values for info types that must needs be coded in C
       
    72 
       
    73 sub makefunk ($) {
       
    74      my $type = shift;
       
    75      return sub {dbd_mysql_get_info(shift, $type)}
       
    76 }
       
    77 
       
    78 
       
    79 
       
    80 
       
    81 our %info = (
       
    82      20 => 'N',                           # SQL_ACCESSIBLE_PROCEDURES
       
    83      19 => 'Y',                           # SQL_ACCESSIBLE_TABLES
       
    84       0 => 0,                             # SQL_ACTIVE_CONNECTIONS
       
    85     116 => 0,                             # SQL_ACTIVE_ENVIRONMENTS
       
    86       1 => 0,                             # SQL_ACTIVE_STATEMENTS
       
    87     169 => 127,                           # SQL_AGGREGATE_FUNCTIONS
       
    88     117 => 0,                             # SQL_ALTER_DOMAIN
       
    89      86 => 3,                             # SQL_ALTER_TABLE
       
    90   10021 => 0,                             # SQL_ASYNC_MODE
       
    91     120 => 2,                             # SQL_BATCH_ROW_COUNT
       
    92     121 => 2,                             # SQL_BATCH_SUPPORT
       
    93      82 => 0,                             # SQL_BOOKMARK_PERSISTENCE
       
    94     114 => 1,                             # SQL_CATALOG_LOCATION
       
    95   10003 => 'Y',                           # SQL_CATALOG_NAME
       
    96      41 => makefunk 41,                   # SQL_CATALOG_NAME_SEPARATOR
       
    97      42 => makefunk 42,                   # SQL_CATALOG_TERM
       
    98      92 => 29,                            # SQL_CATALOG_USAGE
       
    99   10004 => '',                            # SQL_COLLATING_SEQUENCE
       
   100   10004 => '',                            # SQL_COLLATION_SEQ
       
   101      87 => 'Y',                           # SQL_COLUMN_ALIAS
       
   102      22 => 0,                             # SQL_CONCAT_NULL_BEHAVIOR
       
   103      53 => 259071,                        # SQL_CONVERT_BIGINT
       
   104      54 => 0,                             # SQL_CONVERT_BINARY
       
   105      55 => 259071,                        # SQL_CONVERT_BIT
       
   106      56 => 259071,                        # SQL_CONVERT_CHAR
       
   107      57 => 259071,                        # SQL_CONVERT_DATE
       
   108      58 => 259071,                        # SQL_CONVERT_DECIMAL
       
   109      59 => 259071,                        # SQL_CONVERT_DOUBLE
       
   110      60 => 259071,                        # SQL_CONVERT_FLOAT
       
   111      48 => 0,                             # SQL_CONVERT_FUNCTIONS
       
   112 #   173 => undef,                         # SQL_CONVERT_GUID
       
   113      61 => 259071,                        # SQL_CONVERT_INTEGER
       
   114     123 => 0,                             # SQL_CONVERT_INTERVAL_DAY_TIME
       
   115     124 => 0,                             # SQL_CONVERT_INTERVAL_YEAR_MONTH
       
   116      71 => 0,                             # SQL_CONVERT_LONGVARBINARY
       
   117      62 => 259071,                        # SQL_CONVERT_LONGVARCHAR
       
   118      63 => 259071,                        # SQL_CONVERT_NUMERIC
       
   119      64 => 259071,                        # SQL_CONVERT_REAL
       
   120      65 => 259071,                        # SQL_CONVERT_SMALLINT
       
   121      66 => 259071,                        # SQL_CONVERT_TIME
       
   122      67 => 259071,                        # SQL_CONVERT_TIMESTAMP
       
   123      68 => 259071,                        # SQL_CONVERT_TINYINT
       
   124      69 => 0,                             # SQL_CONVERT_VARBINARY
       
   125      70 => 259071,                        # SQL_CONVERT_VARCHAR
       
   126     122 => 0,                             # SQL_CONVERT_WCHAR
       
   127     125 => 0,                             # SQL_CONVERT_WLONGVARCHAR
       
   128     126 => 0,                             # SQL_CONVERT_WVARCHAR
       
   129      74 => 1,                             # SQL_CORRELATION_NAME
       
   130     127 => 0,                             # SQL_CREATE_ASSERTION
       
   131     128 => 0,                             # SQL_CREATE_CHARACTER_SET
       
   132     129 => 0,                             # SQL_CREATE_COLLATION
       
   133     130 => 0,                             # SQL_CREATE_DOMAIN
       
   134     131 => 0,                             # SQL_CREATE_SCHEMA
       
   135     132 => 1045,                          # SQL_CREATE_TABLE
       
   136     133 => 0,                             # SQL_CREATE_TRANSLATION
       
   137     134 => 0,                             # SQL_CREATE_VIEW
       
   138      23 => 2,                             # SQL_CURSOR_COMMIT_BEHAVIOR
       
   139      24 => 2,                             # SQL_CURSOR_ROLLBACK_BEHAVIOR
       
   140   10001 => 0,                             # SQL_CURSOR_SENSITIVITY
       
   141       2 => \&sql_data_source_name,        # SQL_DATA_SOURCE_NAME
       
   142      25 => 'N',                           # SQL_DATA_SOURCE_READ_ONLY
       
   143     119 => 7,                             # SQL_DATETIME_LITERALS
       
   144      17 => 'MySQL',                       # SQL_DBMS_NAME
       
   145      18 => makefunk 18,                   # SQL_DBMS_VER
       
   146     170 => 3,                             # SQL_DDL_INDEX
       
   147      26 => 2,                             # SQL_DEFAULT_TRANSACTION_ISOLATION
       
   148      26 => 2,                             # SQL_DEFAULT_TXN_ISOLATION
       
   149   10002 => 'N',                           # SQL_DESCRIBE_PARAMETER
       
   150 #   171 => undef,                         # SQL_DM_VER
       
   151       3 => 137076632,                     # SQL_DRIVER_HDBC
       
   152 #   135 => undef,                         # SQL_DRIVER_HDESC
       
   153       4 => 137076088,                     # SQL_DRIVER_HENV
       
   154 #    76 => undef,                         # SQL_DRIVER_HLIB
       
   155 #     5 => undef,                         # SQL_DRIVER_HSTMT
       
   156       6 => 'libmyodbc3.so',               # SQL_DRIVER_NAME
       
   157      77 => '03.51',                       # SQL_DRIVER_ODBC_VER
       
   158       7 => $sql_driver_ver,               # SQL_DRIVER_VER
       
   159     136 => 0,                             # SQL_DROP_ASSERTION
       
   160     137 => 0,                             # SQL_DROP_CHARACTER_SET
       
   161     138 => 0,                             # SQL_DROP_COLLATION
       
   162     139 => 0,                             # SQL_DROP_DOMAIN
       
   163     140 => 0,                             # SQL_DROP_SCHEMA
       
   164     141 => 7,                             # SQL_DROP_TABLE
       
   165     142 => 0,                             # SQL_DROP_TRANSLATION
       
   166     143 => 0,                             # SQL_DROP_VIEW
       
   167     144 => 0,                             # SQL_DYNAMIC_CURSOR_ATTRIBUTES1
       
   168     145 => 0,                             # SQL_DYNAMIC_CURSOR_ATTRIBUTES2
       
   169      27 => 'Y',                           # SQL_EXPRESSIONS_IN_ORDERBY
       
   170       8 => 63,                            # SQL_FETCH_DIRECTION
       
   171      84 => 0,                             # SQL_FILE_USAGE
       
   172     146 => 97863,                         # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
       
   173     147 => 6016,                          # SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
       
   174      81 => 11,                            # SQL_GETDATA_EXTENSIONS
       
   175      88 => 3,                             # SQL_GROUP_BY
       
   176      28 => 4,                             # SQL_IDENTIFIER_CASE
       
   177      #29 => sub {dbd_mysql_get_info(shift,$GetInfoType {SQL_IDENTIFIER_QUOTE_CHAR})},
       
   178      29 => makefunk 29,                   # SQL_IDENTIFIER_QUOTE_CHAR
       
   179     148 => 0,                             # SQL_INDEX_KEYWORDS
       
   180     149 => 0,                             # SQL_INFO_SCHEMA_VIEWS
       
   181     172 => 7,                             # SQL_INSERT_STATEMENT
       
   182      73 => 'N',                           # SQL_INTEGRITY
       
   183     150 => 0,                             # SQL_KEYSET_CURSOR_ATTRIBUTES1
       
   184     151 => 0,                             # SQL_KEYSET_CURSOR_ATTRIBUTES2
       
   185      89 => \&sql_keywords,                # SQL_KEYWORDS
       
   186     113 => 'Y',                           # SQL_LIKE_ESCAPE_CLAUSE
       
   187      78 => 0,                             # SQL_LOCK_TYPES
       
   188      34 => 64,                            # SQL_MAXIMUM_CATALOG_NAME_LENGTH
       
   189      97 => 0,                             # SQL_MAXIMUM_COLUMNS_IN_GROUP_BY
       
   190      98 => 32,                            # SQL_MAXIMUM_COLUMNS_IN_INDEX
       
   191      99 => 0,                             # SQL_MAXIMUM_COLUMNS_IN_ORDER_BY
       
   192     100 => 0,                             # SQL_MAXIMUM_COLUMNS_IN_SELECT
       
   193     101 => 0,                             # SQL_MAXIMUM_COLUMNS_IN_TABLE
       
   194      30 => 64,                            # SQL_MAXIMUM_COLUMN_NAME_LENGTH
       
   195       1 => 0,                             # SQL_MAXIMUM_CONCURRENT_ACTIVITIES
       
   196      31 => 18,                            # SQL_MAXIMUM_CURSOR_NAME_LENGTH
       
   197       0 => 0,                             # SQL_MAXIMUM_DRIVER_CONNECTIONS
       
   198   10005 => 64,                            # SQL_MAXIMUM_IDENTIFIER_LENGTH
       
   199     102 => 500,                           # SQL_MAXIMUM_INDEX_SIZE
       
   200     104 => 0,                             # SQL_MAXIMUM_ROW_SIZE
       
   201      32 => 0,                             # SQL_MAXIMUM_SCHEMA_NAME_LENGTH
       
   202     105 => makefunk 105,                  # SQL_MAXIMUM_STATEMENT_LENGTH
       
   203 # 20000 => undef,                         # SQL_MAXIMUM_STMT_OCTETS
       
   204 # 20001 => undef,                         # SQL_MAXIMUM_STMT_OCTETS_DATA
       
   205 # 20002 => undef,                         # SQL_MAXIMUM_STMT_OCTETS_SCHEMA
       
   206     106 => makefunk 106,                  # SQL_MAXIMUM_TABLES_IN_SELECT
       
   207      35 => 64,                            # SQL_MAXIMUM_TABLE_NAME_LENGTH
       
   208     107 => 16,                            # SQL_MAXIMUM_USER_NAME_LENGTH
       
   209   10022 => 0,                             # SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
       
   210     112 => 0,                             # SQL_MAX_BINARY_LITERAL_LEN
       
   211      34 => 64,                            # SQL_MAX_CATALOG_NAME_LEN
       
   212     108 => 0,                             # SQL_MAX_CHAR_LITERAL_LEN
       
   213      97 => 0,                             # SQL_MAX_COLUMNS_IN_GROUP_BY
       
   214      98 => 32,                            # SQL_MAX_COLUMNS_IN_INDEX
       
   215      99 => 0,                             # SQL_MAX_COLUMNS_IN_ORDER_BY
       
   216     100 => 0,                             # SQL_MAX_COLUMNS_IN_SELECT
       
   217     101 => 0,                             # SQL_MAX_COLUMNS_IN_TABLE
       
   218      30 => 64,                            # SQL_MAX_COLUMN_NAME_LEN
       
   219       1 => 0,                             # SQL_MAX_CONCURRENT_ACTIVITIES
       
   220      31 => 18,                            # SQL_MAX_CURSOR_NAME_LEN
       
   221       0 => 0,                             # SQL_MAX_DRIVER_CONNECTIONS
       
   222   10005 => 64,                            # SQL_MAX_IDENTIFIER_LEN
       
   223     102 => 500,                           # SQL_MAX_INDEX_SIZE
       
   224      32 => 0,                             # SQL_MAX_OWNER_NAME_LEN
       
   225      33 => 0,                             # SQL_MAX_PROCEDURE_NAME_LEN
       
   226      34 => 64,                            # SQL_MAX_QUALIFIER_NAME_LEN
       
   227     104 => 0,                             # SQL_MAX_ROW_SIZE
       
   228     103 => 'Y',                           # SQL_MAX_ROW_SIZE_INCLUDES_LONG
       
   229      32 => 0,                             # SQL_MAX_SCHEMA_NAME_LEN
       
   230     105 => 8192,                          # SQL_MAX_STATEMENT_LEN
       
   231     106 => 31,                            # SQL_MAX_TABLES_IN_SELECT
       
   232      35 => makefunk 35,                   # SQL_MAX_TABLE_NAME_LEN
       
   233     107 => 16,                            # SQL_MAX_USER_NAME_LEN
       
   234      37 => 'Y',                           # SQL_MULTIPLE_ACTIVE_TXN
       
   235      36 => 'Y',                           # SQL_MULT_RESULT_SETS
       
   236     111 => 'N',                           # SQL_NEED_LONG_DATA_LEN
       
   237      75 => 1,                             # SQL_NON_NULLABLE_COLUMNS
       
   238      85 => 2,                             # SQL_NULL_COLLATION
       
   239      49 => 16777215,                      # SQL_NUMERIC_FUNCTIONS
       
   240       9 => 1,                             # SQL_ODBC_API_CONFORMANCE
       
   241     152 => 2,                             # SQL_ODBC_INTERFACE_CONFORMANCE
       
   242      12 => 1,                             # SQL_ODBC_SAG_CLI_CONFORMANCE
       
   243      15 => 1,                             # SQL_ODBC_SQL_CONFORMANCE
       
   244      73 => 'N',                           # SQL_ODBC_SQL_OPT_IEF
       
   245      10 => '03.80',                       # SQL_ODBC_VER
       
   246     115 => 123,                           # SQL_OJ_CAPABILITIES
       
   247      90 => 'Y',                           # SQL_ORDER_BY_COLUMNS_IN_SELECT
       
   248      38 => 'Y',                           # SQL_OUTER_JOINS
       
   249     115 => 123,                           # SQL_OUTER_JOIN_CAPABILITIES
       
   250      39 => '',                            # SQL_OWNER_TERM
       
   251      91 => 0,                             # SQL_OWNER_USAGE
       
   252     153 => 2,                             # SQL_PARAM_ARRAY_ROW_COUNTS
       
   253     154 => 3,                             # SQL_PARAM_ARRAY_SELECTS
       
   254      80 => 3,                             # SQL_POSITIONED_STATEMENTS
       
   255      79 => 31,                            # SQL_POS_OPERATIONS
       
   256      21 => 'N',                           # SQL_PROCEDURES
       
   257      40 => '',                            # SQL_PROCEDURE_TERM
       
   258     114 => 1,                             # SQL_QUALIFIER_LOCATION
       
   259      41 => '.',                           # SQL_QUALIFIER_NAME_SEPARATOR
       
   260      42 => 'database',                    # SQL_QUALIFIER_TERM
       
   261      92 => 29,                            # SQL_QUALIFIER_USAGE
       
   262      93 => 3,                             # SQL_QUOTED_IDENTIFIER_CASE
       
   263      11 => 'N',                           # SQL_ROW_UPDATES
       
   264      39 => '',                            # SQL_SCHEMA_TERM
       
   265      91 => 0,                             # SQL_SCHEMA_USAGE
       
   266      43 => 7,                             # SQL_SCROLL_CONCURRENCY
       
   267      44 => 17,                            # SQL_SCROLL_OPTIONS
       
   268      14 => '\\',                          # SQL_SEARCH_PATTERN_ESCAPE
       
   269      13 => makefunk 13,                   # SQL_SERVER_NAME
       
   270      94 => 'ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜáíóúñÑ', # SQL_SPECIAL_CHARACTERS
       
   271     155 => 7,                             # SQL_SQL92_DATETIME_FUNCTIONS
       
   272     156 => 0,                             # SQL_SQL92_FOREIGN_KEY_DELETE_RULE
       
   273     157 => 0,                             # SQL_SQL92_FOREIGN_KEY_UPDATE_RULE
       
   274     158 => 8160,                          # SQL_SQL92_GRANT
       
   275     159 => 0,                             # SQL_SQL92_NUMERIC_VALUE_FUNCTIONS
       
   276     160 => 0,                             # SQL_SQL92_PREDICATES
       
   277     161 => 466,                           # SQL_SQL92_RELATIONAL_JOIN_OPERATORS
       
   278     162 => 32640,                         # SQL_SQL92_REVOKE
       
   279     163 => 7,                             # SQL_SQL92_ROW_VALUE_CONSTRUCTOR
       
   280     164 => 255,                           # SQL_SQL92_STRING_FUNCTIONS
       
   281     165 => 0,                             # SQL_SQL92_VALUE_EXPRESSIONS
       
   282     118 => 4,                             # SQL_SQL_CONFORMANCE
       
   283     166 => 2,                             # SQL_STANDARD_CLI_CONFORMANCE
       
   284     167 => 97863,                         # SQL_STATIC_CURSOR_ATTRIBUTES1
       
   285     168 => 6016,                          # SQL_STATIC_CURSOR_ATTRIBUTES2
       
   286      83 => 7,                             # SQL_STATIC_SENSITIVITY
       
   287      50 => 491519,                        # SQL_STRING_FUNCTIONS
       
   288      95 => 0,                             # SQL_SUBQUERIES
       
   289      51 => 7,                             # SQL_SYSTEM_FUNCTIONS
       
   290      45 => 'table',                       # SQL_TABLE_TERM
       
   291     109 => 0,                             # SQL_TIMEDATE_ADD_INTERVALS
       
   292     110 => 0,                             # SQL_TIMEDATE_DIFF_INTERVALS
       
   293      52 => 106495,                        # SQL_TIMEDATE_FUNCTIONS
       
   294      46 => 3,                             # SQL_TRANSACTION_CAPABLE
       
   295      72 => 15,                            # SQL_TRANSACTION_ISOLATION_OPTION
       
   296      46 => 3,                             # SQL_TXN_CAPABLE
       
   297      72 => 15,                            # SQL_TXN_ISOLATION_OPTION
       
   298      96 => 0,                             # SQL_UNION
       
   299      96 => 0,                             # SQL_UNION_STATEMENT
       
   300      47 => \&sql_user_name,               # SQL_USER_NAME
       
   301   10000 => 1992,                          # SQL_XOPEN_CLI_YEAR
       
   302 );
       
   303 
       
   304 1;
       
   305 
       
   306 __END__