|
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__ |