42 changed files with 5922 additions and 1739 deletions
-
28storage/connect/connect.cc
-
4storage/connect/connect.h
-
366storage/connect/english.msg
-
366storage/connect/french.msg
-
312storage/connect/ha_connect.cc
-
11storage/connect/ha_connect.h
-
361storage/connect/json.cpp
-
91storage/connect/json.h
-
4069storage/connect/jsonudf.cpp
-
247storage/connect/jsonudf.h
-
4storage/connect/mycat.cc
-
27storage/connect/mysql-test/connect/r/datest.result
-
34storage/connect/mysql-test/connect/r/json.result
-
554storage/connect/mysql-test/connect/r/json_udf.result
-
100storage/connect/mysql-test/connect/r/odbc_firebird.result
-
2storage/connect/mysql-test/connect/std_data/bib0.json
-
10storage/connect/mysql-test/connect/std_data/biblio.json
-
12storage/connect/mysql-test/connect/t/datest.test
-
30storage/connect/mysql-test/connect/t/json.test
-
56storage/connect/mysql-test/connect/t/json_udf.inc
-
228storage/connect/mysql-test/connect/t/json_udf.test
-
39storage/connect/mysql-test/connect/t/json_udf2.inc
-
31storage/connect/mysql-test/connect/t/odbc_firebird.test
-
38storage/connect/noconst.c
-
6storage/connect/plugutil.c
-
1storage/connect/reldef.cpp
-
6storage/connect/tabdos.cpp
-
25storage/connect/tabjson.cpp
-
58storage/connect/tabmysql.cpp
-
2storage/connect/tabmysql.h
-
426storage/connect/tabodbc.cpp
-
16storage/connect/tabodbc.h
-
18storage/connect/tabxml.cpp
-
14storage/connect/value.cpp
-
2storage/connect/value.h
-
24storage/connect/xobject.cpp
-
2storage/connect/xobject.h
-
29storage/connect/xtable.h
-
1storage/innobase/os/os0file.cc
-
1storage/xtradb/os/os0file.cc
-
2win/packaging/heidisql.cmake
-
8win/packaging/heidisql.wxi.in
@ -1,366 +0,0 @@ |
|||
100 IDS_TABLES "Table Headers" |
|||
101 IDS_TAB_01 "Table_Cat" |
|||
102 IDS_TAB_02 "Table_Schema" |
|||
103 IDS_TAB_03 "Table_Name" |
|||
104 IDS_TAB_04 "Table_Type" |
|||
105 IDS_TAB_05 "Remark" |
|||
106 IDS_COLUMNS "Column Headers" |
|||
107 IDS_COL_01 "Table_Cat" |
|||
108 IDS_COL_02 "Table_Schema" |
|||
109 IDS_COL_03 "Table_Name" |
|||
110 IDS_COL_04 "Column_Name" |
|||
111 IDS_COL_05 "Data_Type" |
|||
112 IDS_COL_06 "Type_Name" |
|||
113 IDS_COL_07 "Column_Size" |
|||
114 IDS_COL_08 "Buffer_Length" |
|||
115 IDS_COL_09 "Decimal_Digits" |
|||
116 IDS_COL_10 "Radix" |
|||
117 IDS_COL_11 "Nullable" |
|||
118 IDS_COL_12 "Remarks" |
|||
119 IDS_PKEY "Key Headers" |
|||
120 IDS_PKY_01 "Table_Catalog" |
|||
121 IDS_PKY_02 "Table_Schema" |
|||
122 IDS_PKY_03 "Table_Name" |
|||
123 IDS_PKY_04 "Column_Name" |
|||
124 IDS_PKY_05 "Key_Seq" |
|||
125 IDS_PKY_06 "Pk_Name" |
|||
126 IDS_STAT "Stat Headers" |
|||
127 IDS_STA_01 "Table_Catalog" |
|||
128 IDS_STA_02 "Table_Schema" |
|||
129 IDS_STA_03 "Table_Name" |
|||
130 IDS_STA_04 "Non_Unique" |
|||
131 IDS_STA_05 "Index_Qualifier" |
|||
132 IDS_STA_06 "Index_Name" |
|||
133 IDS_STA_07 "Type" |
|||
134 IDS_STA_08 "Seq_in_Index" |
|||
135 IDS_STA_09 "Column_Name" |
|||
136 IDS_STA_10 "Collation" |
|||
137 IDS_STA_11 "Cardinality" |
|||
138 IDS_STA_12 "Pages" |
|||
139 IDS_STA_13 "Filter_Condition" |
|||
140 IDS_DRIVER "Driver Headers" |
|||
141 IDS_DRV_01 "Description" |
|||
142 IDS_DRV_02 "Attributes" |
|||
143 IDS_DSRC "DataSrc Headers" |
|||
144 IDS_DSC_01 "Name" |
|||
145 IDS_DSC_02 "Description" |
|||
200 ACCESS_VIOLATN "Access violation" |
|||
201 ADD_BAD_TYPE "Array add value type mismatch (%s -> %s)" |
|||
202 ALLOC_ERROR "Error allocating %s" |
|||
203 ANSWER_TYPE "Answer of type" |
|||
204 API_CONF_ERROR "SQL Error: API_CONFORMANCE" |
|||
205 APPL_NOT_INIT "Application not initialized" |
|||
206 ARRAY_BNDS_EXCD "Array bounds exceeded" |
|||
207 BAD_ARRAY_OPER "Arrays must be used with the IN operator" |
|||
208 BAD_ARRAY_TYPE "Illegal array type %d" |
|||
209 BAD_ARRAY_VAL "Arrays must have the same number of values" |
|||
210 BAD_BIN_FMT "Invalid format %c for the %s BIN column" |
|||
211 BAD_BLK_ESTIM "Number of blocks exceeds estimate" |
|||
212 BAD_BLK_SIZE "No match in block %d size" |
|||
213 BAD_BYTE_NUM "bad number of bytes written" |
|||
214 BAD_BYTE_READ "bad number of bytes read" |
|||
215 BAD_COL_TYPE "Invalid type %s for column %s" |
|||
216 BAD_COL_XPATH "Invalid Xpath in column %s for HTML table %s" |
|||
217 BAD_CONST_TYPE "Bad constant type=%d" |
|||
218 BAD_CONV_TYPE "Invalid convert type %d" |
|||
219 BAD_DATETIME "Invalid datetime value" |
|||
220 BAD_DBF_FILE "DBF file %s is corrupted" |
|||
221 BAD_DBF_REC "DBF file %s corrupted at record %d" |
|||
222 BAD_DBF_TYPE "Unsupported DBF type %c for column %s" |
|||
223 BAD_DIRECTORY "Bad directory %s: %s" |
|||
224 BAD_FIELD_RANK "Invalid field rank %d for column %s" |
|||
225 BAD_FIELD_TYPE "Bad type field %s" |
|||
226 BAD_FILE_HANDLE "Invalid File Handle: %s" |
|||
227 BAD_FILTER "Bad filter: Opc=%d B_T=%d %d Type=%d %d" |
|||
228 BAD_FILTER_CONV "Bad filter conversion, B_T=%d,%d" |
|||
229 BAD_FILTER_OP "Invalid filter operator %d" |
|||
230 BAD_FLD_FORMAT "Bad format for field %d of %s" |
|||
231 BAD_FLD_LENGTH "Field %s too long (%s --> %d) line %d of %s" |
|||
232 BAD_FREQ_SET "Bad frequency setting for column %s" |
|||
233 BAD_FUNC_MODE "%s: invalid mode %d" |
|||
234 BAD_HANDLE_VAL "Invalid handle value" |
|||
235 BAD_HEADER "File %s: Header corrupted" |
|||
236 BAD_HEAD_END "Can't read end of header" |
|||
237 BAD_INDEX_FILE "Wrong index file %s" |
|||
238 BAD_LINEFLD_FMT "Bad format line %d field %d of %s" |
|||
239 BAD_LINE_LEN "Line length not equal to Lrecl" |
|||
240 BAD_LRECL "Table/File lrecl mismatch (%d,%hd)" |
|||
241 BAD_NODE_TYPE "Bad type %d for table node" |
|||
242 BAD_OFFSET_VAL "Invalid null offset value for a CSV table" |
|||
243 BAD_OPEN_MODE "Invalid open mode %d" |
|||
244 BAD_PARAM_TYPE "%.8s: Bad parameter type=%d" |
|||
245 BAD_PARM_COUNT "Parameter count mismatch" |
|||
246 BAD_QUOTE_FIELD "Missing ending quote in %s field %d line %d" |
|||
247 BAD_READ_NUMBER "Wrong number %d of values read from %s" |
|||
248 BAD_RECFM "Invalid recfm type %d for DOSCOL" |
|||
249 BAD_RECFM_VAL "Bad Recfm value %d" |
|||
250 BAD_SET_CASE "Cannot set sensitive an insensitive array" |
|||
251 BAD_SET_STRING "Invalid SetValue from string" |
|||
252 BAD_SPECIAL_COL "Bad special column %s" |
|||
253 BAD_SPEC_COLUMN "Special column invalid for this table type" |
|||
254 BAD_TABLE_TYPE "Bad type %s for table %s" |
|||
255 BAD_TYPE_LIKE "Bad operand(%d) type=%d for LIKE" |
|||
256 BAD_VALBLK_INDX "Out of range valblock index value" |
|||
257 BAD_VALBLK_TYPE "Invalid value block type %d" |
|||
258 BAD_VALNODE "Bad type %d for column %s value node" |
|||
259 BAD_VALUE_TYPE "Invalid value type %d" |
|||
260 BAD_VAL_UPDATE "Don't know which %s value to update" |
|||
261 BAS_NS_LIST "Invalid namespaces list format" |
|||
262 BIN_F_TOO_LONG "Value too long for field %s (%d --> %d)" |
|||
263 BIN_MODE_FAIL "Set binary mode failed: %s" |
|||
264 BLKTYPLEN_MISM "Non matching block types/lengths in SetValue" |
|||
265 BLK_IS_NULL "Blk is NULL" |
|||
266 BREAKPOINT "Breakpoint" |
|||
267 BUILD_INDEX "Building index %s on %s" |
|||
268 CANNOT_OPEN "Cannot open %s" |
|||
269 CHSIZE_ERROR "chsize error: %s" |
|||
270 COL_ALLOC_ERR "Cannot allocate column node" |
|||
271 COL_ISNOT_TABLE "Column %s is not in table %s" |
|||
272 COL_NOT_SORTED "Column %s of table %s is not sorted" |
|||
273 COL_NUM_MISM "Number of columns mismatch" |
|||
274 COM_ERROR "Com error" |
|||
275 CONCAT_SUBNODE "Cannot concatenate sub-nodes" |
|||
276 CONNECT_CANCEL "Connection cancelled by user" |
|||
277 CONTROL_C_EXIT "Control C exit" |
|||
278 DATABASE_LOADED "Database %s loaded" |
|||
279 DATA_MISALIGN "Datatype misalignment" |
|||
280 DBASE_FILE "dBASE dbf file: " |
|||
281 DEF_ALLOC_ERROR "Error allocating %s DEF class" |
|||
282 DEL_FILE_ERR "Error deleting %s" |
|||
283 DEL_READ_ERROR "Delete: read error req=%d len=%d" |
|||
284 DEL_WRITE_ERROR "Delete: write error: %s" |
|||
285 DEPREC_FLAG "Deprecated option Flag, use Coltype" |
|||
286 DLL_LOAD_ERROR "Error %d loading module %s" |
|||
287 DOM_NOT_SUPP "MS-DOM not supported by this version" |
|||
288 DVAL_NOTIN_LIST "Value %s not found in distinct values list of column %s" |
|||
289 EMPTY_DOC "Empty document" |
|||
290 EMPTY_FILE "%s empty file %s: " |
|||
291 EOF_AFTER_LINE "EOF after line %d" |
|||
292 EOF_INDEX_FILE "EOF while reading index file" |
|||
293 ERROR_IN_LSK "Error %d in lseek64" |
|||
294 ERROR_IN_SFP "Error %d in SetFilePointer" |
|||
295 ERR_READING_REC "Error reading record %d of %s" |
|||
296 FAIL_ADD_NODE "Failed to add %s table node" |
|||
297 FETCH_NO_RES "Fetch: No Result Set" |
|||
298 FIELD_TOO_LONG "Value too long for field %d line %d" |
|||
299 FILELEN_ERROR "Error in %s for %s" |
|||
300 FILE_IS_EMPTY "File %s is empty" |
|||
301 FILE_MAP_ERR "File mapping error" |
|||
302 FILE_MAP_ERROR "CreateFileMapping %s error rc=%d" |
|||
303 FILE_OPEN_YET "File %s already open" |
|||
304 FILE_UNFOUND "File %s not found" |
|||
305 FLD_TOO_LNG_FOR "Field %d too long for %s line %d of %s" |
|||
306 FLT_BAD_RESULT "Float inexact result" |
|||
307 FLT_DENORMAL_OP "Float denormal operand" |
|||
308 FLT_INVALID_OP "Float invalid operation" |
|||
309 FLT_OVERFLOW "Float overflow" |
|||
310 FLT_STACK_CHECK "Float stack check" |
|||
311 FLT_UNDERFLOW "Float underflow" |
|||
312 FLT_ZERO_DIVIDE "Float divide by zero" |
|||
313 FMT_WRITE_NIY "Writing %s files is not implemented yet" |
|||
314 FOXPRO_FILE "FoxPro file: " |
|||
315 FPUTS_ERROR "fputs error: %s" |
|||
316 FSEEK_ERROR "fseek error: %s" |
|||
317 FSETPOS_ERROR "fseek error for i=%d" |
|||
318 FTELL_ERROR "ftell error for recd=%d: %s" |
|||
319 FUNCTION_ERROR "%s error: %d" |
|||
320 FUNC_ERRNO "Error %d in %s" |
|||
321 FUNC_ERROR "Error in %s" |
|||
322 FUNC_ERR_S "%s error: %s" |
|||
323 FWRITE_ERROR "fwrite error: %s" |
|||
324 GET_DIST_VALS "Retrieving distinct values from " |
|||
325 GET_FUNC_ERR "Error getting function %s: %s" |
|||
326 GLOBAL_ERROR "Cannot allocate Global (size=%d)\n" |
|||
327 GUARD_PAGE "Guard page violation" |
|||
328 GZOPEN_ERROR "gzopen %s error %d on %s" |
|||
329 ILLEGAL_INSTR "Illegal instruction" |
|||
330 ILL_FILTER_CONV "Filtering implies an illegal conversion" |
|||
331 INDEX_NOT_UNIQ "Index is not unique" |
|||
332 INDEX_YET_ON "Index %s already exists on %s" |
|||
333 INDX_COL_NOTIN "Index column %s is not in table %s" |
|||
334 INDX_EXIST_YET "Index entry already exists" |
|||
335 INIT_FAILED "Failed to initialize %s processing" |
|||
336 INT_COL_ERROR "Internal error for index column %s" |
|||
337 INT_OVERFLOW "Integer overflow" |
|||
338 INT_ZERO_DIVIDE "Integer divide by zero" |
|||
339 INVALID_DISP "Invalid disposition" |
|||
340 INVALID_FTYPE "SBV: invalid Ftype %d" |
|||
341 INVALID_HANDLE "Invalid handle" |
|||
342 INVALID_OPER "Invalid operator %d for %s" |
|||
343 INV_COLUMN_TYPE "Invalid type %d for column %s" |
|||
344 INV_COL_TYPE "Invalid column type %s" |
|||
345 INV_DEF_READ "Invalid deferred Read rc=%d" |
|||
346 INV_DIRCOL_OFST "Invalid DIRCOL offset %d" |
|||
347 INV_MAP_POS "Invalid map position" |
|||
348 INV_RAND_ACC "Invalid random access to non optimized table" |
|||
349 INV_REC_POS "Invalid record position" |
|||
350 INV_RESULT_TYPE "Invalid result type %s" |
|||
351 INV_UPDT_TABLE "Table %s invalid for update" |
|||
352 IN_WITHOUT_SUB "IN or EXISTS without array or subquery" |
|||
353 KEY_ALLOC_ERR "Error allocating Key offset block" |
|||
354 KEY_ALLOC_ERROR "Memory allocation error, Klen=%d n=%d" |
|||
355 LINE_TOO_LONG "New line is too long" |
|||
356 LIST "--List--" |
|||
357 LOADING_FAILED "Loading of %s failed" |
|||
358 LRECL_TOO_SMALL "Lrecl too small (headlen = %d)" |
|||
359 MAKE_EMPTY_FILE "Making empty file %s: %s" |
|||
360 MAKING "Making" |
|||
361 MALLOC_ERROR "Memory allocation failed: %s returned Null" |
|||
362 MAP_VIEW_ERROR "MapViewOfFile %s error rc=%d" |
|||
363 MAXSIZE_ERROR "Cannot calculate max size on open table" |
|||
364 MEM_ALLOC_ERR "Memory allocation error, %s size=%d" |
|||
365 MEM_ALLOC_ERROR "Memory allocation error" |
|||
366 MISPLACED_QUOTE "Misplaced quote in line %d" |
|||
367 MISSING_ARG "Missing argument for operator %d" |
|||
368 MISSING_FIELD "Missing field %d in %s line %d" |
|||
369 MISSING_FNAME "Missing file name" |
|||
370 MISSING_NODE "Missing %s node in %s" |
|||
371 MISSING_ROWNODE "Can't find RowNode for row %d" |
|||
372 MIS_TAG_LIST "Missing column tag list" |
|||
373 MUL_MAKECOL_ERR "Tabmul MakeCol logical error" |
|||
374 NAME_CONV_ERR "Error converting node name" |
|||
375 NEW_DOC_FAILED "Cannot create new document" |
|||
376 NEW_RETURN_NULL "New returned Null in PlugEvalLike" |
|||
377 NEXT_FILE_ERROR "Couldn't find next file. rc=%d" |
|||
378 NONCONT_EXCEPT "Noncontinuable exception" |
|||
379 NOP_ZLIB_INDEX "Cannot do indexing on non optimized zlib table" |
|||
380 NOT_A_DBF_FILE "Not a dBASE dbf file " |
|||
381 NOT_FIXED_LEN "File %s is not fixed length, len=%d lrecl=%d" |
|||
382 NO_0DH_HEAD "No 0Dh at end of header (dbc=%d)" |
|||
383 NO_ACTIVE_DB "No active database" |
|||
384 NO_CHAR_FROM "Cannot return char value from type %d" |
|||
385 NO_DATE_FMT "No date format for valblock of type %d" |
|||
386 NO_DEF_FNCCOL "Cannot find default function column" |
|||
387 NO_DEF_PIVOTCOL "Cannot find default pivot column" |
|||
388 NO_DIR_INDX_RD "No direct access of %s tables" |
|||
389 NO_FEAT_SUPPORT "No %s support in this version" |
|||
390 NO_FLD_FORMAT "Missing format for field %d of %s" |
|||
391 NO_FORMAT_COL "Cannot format the type COLUMN" |
|||
392 NO_FORMAT_TYPE "Cannot set format from type %d" |
|||
393 NO_INDEX_READ "No indexed read for multiple tables" |
|||
394 NO_KEY_COL "No key columns found" |
|||
395 NO_KEY_UPDATE "Cannot update key names" |
|||
396 NO_MAP_INSERT "MAP incompatible with Insert" |
|||
397 NO_MATCHING_COL "No matching column %s in %s" |
|||
398 NO_MATCH_COL "Cannot find matching column" |
|||
399 NO_MEMORY "No memory" |
|||
400 NO_MODE_PADDED "Mode not supported for padded files" |
|||
401 NO_MUL_VCT "VCT tables cannot be multiple" |
|||
402 NO_ODBC_DELETE "Delete should not be called for ODBC tables" |
|||
403 NO_ODBC_DIRECT "Direct access of ODBC tables not implemented yet" |
|||
404 NO_ODBC_MUL "Multiple(2) not supported for ODBC tables" |
|||
405 NO_ODBC_SPECOL "No ODBC special columns" |
|||
406 NO_PART_DEL "No partial delete of %s files" |
|||
407 NO_PART_MAP "Partial mapping not implemented for this OS" |
|||
408 NO_PAR_BLK_INS "Cannot insert partial block yet" |
|||
409 NO_PIV_DIR_ACC "No direct access to PIVOT tables" |
|||
410 NO_READ_32 "Can't read 32 bytes" |
|||
411 NO_RECOV_SPACE "Cannot recover space in index file" |
|||
412 NO_ROWID_FOR_AM "Can't get RowID in direct access for tables of type %s" |
|||
413 NO_ROW_NODE "Row node name is not defined" |
|||
414 NO_SECTION_NAME "Missing section name" |
|||
415 NO_SEC_UPDATE "Cannot update section names" |
|||
416 NO_SETPOS_YET "%s SetPos not implemented yet" |
|||
417 NO_SPEC_COL "No MySQL special columns" |
|||
418 NO_SUB_VAL "No sub value for array of type %d" |
|||
419 NO_TABCOL_DATA "No data found for table %s column %s" |
|||
420 NO_TABLE_DEL "Delete not enabled for %s tables " |
|||
421 NO_TAB_DATA "No data found for table %s" |
|||
422 NO_VCT_DELETE "Partial delete not yet implemented for VCT files" |
|||
423 NO_ZIP_DELETE "Delete Zip files not implemented yet" |
|||
424 OPENING "Opening" |
|||
425 OPEN_EMPTY_FILE "Opening empty file %s: %s" |
|||
426 OPEN_ERROR "Open error %d in mode %d on %s: " |
|||
427 OPEN_ERROR_IS "Open error on %s: %s" |
|||
428 OPEN_MODE_ERROR "Open(%s) error %d on %s" |
|||
429 OPEN_STRERROR "open error: %s" |
|||
430 OPTBLK_RD_ERR "Error reading opt block values: %s" |
|||
431 OPTBLK_WR_ERR "Error writing opt block values: %s" |
|||
432 OPTIMIZING "Optimizing " |
|||
433 OPT_BMAP_RD_ERR "Error reading opt bitmaps: %s" |
|||
434 OPT_BMAP_WR_ERR "Error writing opt bitmaps: %s" |
|||
435 OPT_CANCELLED "Optimize cancelled by User" |
|||
436 OPT_DVAL_RD_ERR "Error reading distinct values: %s" |
|||
437 OPT_DVAL_WR_ERR "Error writing distinct values: %s" |
|||
438 OPT_HEAD_RD_ERR "Error reading opt file header: %s" |
|||
439 OPT_HEAD_WR_ERR "Error writing opt file header: %s" |
|||
440 OPT_LOGIC_ERR "Logical error in SetBitmap, i=%d" |
|||
441 OPT_MAX_RD_ERR "Error reading opt max values: %s" |
|||
442 OPT_MAX_WR_ERR "Error writing opt max values: %s" |
|||
443 OPT_MIN_RD_ERR "Error reading opt min values: %s" |
|||
444 OPT_MIN_WR_ERR "Error writing opt min values: %s" |
|||
445 OPT_NOT_MATCH "Non-matching opt file %s" |
|||
446 PAGE_ERROR "In page error" |
|||
447 PARM_CNT_MISS "Parameter count mismatch" |
|||
448 PREC_VBLP_NULL "ARRAY SetPrecision: Vblp is NULL" |
|||
449 PRIV_INSTR "Privileged instruction" |
|||
450 PROCADD_ERROR "Error %d getting address of %s" |
|||
451 QUERY_CANCELLED "Query Cancelled by User" |
|||
452 RANGE_NO_JOIN "Range is not meant for join index" |
|||
453 RC_READING "rc=%d reading table %s" |
|||
454 READY "Ready" |
|||
455 READ_ERROR "Error reading %s: %s" |
|||
456 READ_ONLY "Cannot modify this read/only protected table" |
|||
457 READ_SEEK_ERROR "Read seek error: %s" |
|||
458 REGISTER_ERR "Unable to register NS with prefix='%s' and href='%s'" |
|||
459 REMOVE_ERROR "Error removing %s: %s" |
|||
460 RENAME_ERROR "Error renaming %s to %s: %s" |
|||
461 ROWID_NOT_IMPL "RowNumber not implemented for tables of type %s" |
|||
462 SEC_KEY_FIRST "Section and key names must come first on Insert" |
|||
463 SEC_NAME_FIRST "Section name must come first on Insert" |
|||
464 SEP_IN_FIELD "Field %d contains the separator character" |
|||
465 SEQUENCE_ERROR "Sequence error on statement allocation" |
|||
466 SETEOF_ERROR "Error %d in SetEndOfFile" |
|||
467 SETRECPOS_NIY "SetRecpos not implemented for this table type" |
|||
468 SET_STR_TRUNC "SetValue: String would be truncated" |
|||
469 SFP_ERROR "SetFilePointer error: %s" |
|||
470 SHARED_LIB_ERR "Error loading shared library %s: %s" |
|||
471 SINGLE_STEP "Single step" |
|||
472 SORTING_VAL "Sorting %d values" |
|||
473 SPCOL_READONLY "Special column %s is Read Only" |
|||
474 SQL_CONF_ERROR "SQL Error: SQL_CONFORMANCE" |
|||
475 SRCH_CLOSE_ERR "Couldn't close search handle" |
|||
476 SRC_TABLE_UNDEF "Source table is not defined" |
|||
477 STACK_OVERFLOW "Stack overflow" |
|||
478 TABDIR_READONLY "DIR tables are read/only" |
|||
479 TABLE_NOT_OPT "Not an optimizable table" |
|||
480 TABLE_NO_INDEX "Table %s is not indexable" |
|||
481 TABLE_READ_ONLY "%s tables are read only " |
|||
482 TABMUL_READONLY "Multiple tables are read/only" |
|||
483 TOO_MANY_FIELDS "Too many fields line %d of %s" |
|||
484 TOO_MANY_JUMPS "Too many jump levels" |
|||
485 TOO_MANY_KEYS "Too many keys (%d)" |
|||
486 TO_BLK_IS_NULL "To Blk is NULL" |
|||
487 TRUNCATE_ERROR "truncate error: %s" |
|||
488 TRUNC_BY_ESTIM "truncated by Estimate" |
|||
489 TYPE_MISMATCH "Key and source are not of the same type" |
|||
490 TYPE_VALUE_ERR "Column %s type(%s)/value(%s) mismatch" |
|||
491 UNBALANCE_QUOTE "Unbalanced quote in line %d" |
|||
492 UNDEFINED_AM "COLBLK %s: undefined Access Method" |
|||
493 UNKNOWN_EXCPT "Unknown exception" |
|||
494 UNMATCH_FIL_ARG "Unmatched filter argument" |
|||
495 UPDATE_ERROR "Error updating %s" |
|||
496 UPD_ZIP_NOT_IMP "Updating ZDOS tables not implemented yet" |
|||
497 VALSTR_TOO_LONG "Value %s too long for string of length %d" |
|||
498 VALTYPE_NOMATCH "Non matching Value types" |
|||
499 VALUE_ERROR "Column %s: value is null" |
|||
500 VALUE_TOO_BIG "Value %lld too big for column %s" |
|||
501 VALUE_TOO_LONG "Value %s too long for column %s of length %d" |
|||
502 VAL_ALLOC_ERR "Cannot allocate value node" |
|||
503 VIR_NO_DELETE "Delete not allowed for %s tables" |
|||
504 VIR_READ_ONLY "Virtual %s tables are read only" |
|||
505 VOID_FIRST_ARG "First argument should not be void" |
|||
506 WORK_AREA "Work area: %s" |
|||
507 WRITE_SEEK_ERR "Write seek error: %s" |
|||
508 WRITE_STRERROR "Error writing %s: %s" |
|||
509 WRITING "Writing" |
|||
510 WRITING_ERROR "Error writing to %s: %s" |
|||
511 WS_CONV_ERR "Error converting %s to WS" |
|||
512 XCOL_MISMATCH "Column %s mismatch in index" |
|||
513 XFILE_READERR "Error %d reading index file" |
|||
514 XFILE_WRITERR "Error writing index file: %s" |
|||
515 XMLTAB_INIT_ERR "Error initializing XML table" |
|||
516 XML_INIT_ERROR "Error initializing new XML file" |
|||
517 XPATH_CNTX_ERR "Unable to create new XPath context" |
|||
518 XPATH_EVAL_ERR "Unable to evaluate xpath location '%s'" |
|||
519 XPATH_NOT_SUPP "Unsupported Xpath for column %s" |
|||
@ -1,366 +0,0 @@ |
|||
100 IDS_TABLES "Table Entêtes" |
|||
101 IDS_TAB_01 "Catalogue" |
|||
102 IDS_TAB_02 "Schéma" |
|||
103 IDS_TAB_03 "Nom" |
|||
104 IDS_TAB_04 "Type" |
|||
105 IDS_TAB_05 "Remarque" |
|||
106 IDS_COLUMNS "Colonne Entêtes" |
|||
107 IDS_COL_01 "Cat_Table" |
|||
108 IDS_COL_02 "Schem_Table" |
|||
109 IDS_COL_03 "Nom_Table" |
|||
110 IDS_COL_04 "Nom_Colonne" |
|||
111 IDS_COL_05 "Type_Données" |
|||
112 IDS_COL_06 "Nom_Type" |
|||
113 IDS_COL_07 "Précision" |
|||
114 IDS_COL_08 "Longueur" |
|||
115 IDS_COL_09 "Echelle" |
|||
116 IDS_COL_10 "Base" |
|||
117 IDS_COL_11 "Nullifiable" |
|||
118 IDS_COL_12 "Remarques" |
|||
119 IDS_PKEY "Clé Entêtes" |
|||
120 IDS_PKY_01 "Cat_Table" |
|||
121 IDS_PKY_02 "Schem_Table" |
|||
122 IDS_PKY_03 "Nom_Table" |
|||
123 IDS_PKY_04 "Nom_Colonne" |
|||
124 IDS_PKY_05 "Numéro_Clé" |
|||
125 IDS_PKY_06 "Nom_Clé" |
|||
126 IDS_STAT "Stat Entêtes" |
|||
127 IDS_STA_01 "Table_Catalog" |
|||
128 IDS_STA_02 "Table_Schema" |
|||
129 IDS_STA_03 "Table_Name" |
|||
130 IDS_STA_04 "Non_Unique" |
|||
131 IDS_STA_05 "Index_Qualifier" |
|||
132 IDS_STA_06 "Index_Name" |
|||
133 IDS_STA_07 "Type" |
|||
134 IDS_STA_08 "Seq_in_Index" |
|||
135 IDS_STA_09 "Column_Name" |
|||
136 IDS_STA_10 "Collation" |
|||
137 IDS_STA_11 "Cardinality" |
|||
138 IDS_STA_12 "Pages" |
|||
139 IDS_STA_13 "Filter_Condition" |
|||
140 IDS_DRIVER "Driver Entêtes" |
|||
141 IDS_DRV_01 "Description" |
|||
142 IDS_DRV_02 "Attributs" |
|||
143 IDS_DSRC "DataSrc Entêtes" |
|||
144 IDS_DSC_01 "Nom" |
|||
145 IDS_DSC_02 "Description" |
|||
200 ACCESS_VIOLATN "Violation accès mémoire" |
|||
201 ADD_BAD_TYPE "Ajout d'une valeur de type %s non conforme dans un tableau %s" |
|||
202 ALLOC_ERROR "Erreur d'allocation de %s" |
|||
203 ANSWER_TYPE "Réponse de type" |
|||
204 API_CONF_ERROR "Erreur SQL: API_CONFORMANCE" |
|||
205 APPL_NOT_INIT "Application non initialisée" |
|||
206 ARRAY_BNDS_EXCD "Hors limite de tableau" |
|||
207 BAD_ARRAY_OPER "Les tableaux doivent utiliser l'opérateur IN" |
|||
208 BAD_ARRAY_TYPE "Type=%d invalide pour un tableau" |
|||
209 BAD_ARRAY_VAL "Les tableaux doivent avoir le même nombre de valeurs" |
|||
210 BAD_BIN_FMT "Format invalide %c pour la colonne BIN %s" |
|||
211 BAD_BLK_ESTIM "Nombre de blocs supérieur à l'estimation" |
|||
212 BAD_BLK_SIZE "Taille du bloc %d non conforme" |
|||
213 BAD_BYTE_NUM "Le nombre d'octets écrits est faux" |
|||
214 BAD_BYTE_READ "Le nombre d'octets lus est faux" |
|||
215 BAD_COL_TYPE "Type invalide %s pour la colonne %s" |
|||
216 BAD_COL_XPATH "Xpath invalide colonne %s de la table HTML %s" |
|||
217 BAD_CONST_TYPE "Type=%d invalide pour une constante" |
|||
218 BAD_CONV_TYPE "Convertion de type invalide %d" |
|||
219 BAD_DATETIME "Valeur date/temps invalide" |
|||
220 BAD_DBF_FILE "Le fichier DBF %s est altéré" |
|||
221 BAD_DBF_REC "Fichier DBF %s altéré enregistrement %d" |
|||
222 BAD_DBF_TYPE "Type DBF %c non supporté colonne %s" |
|||
223 BAD_DIRECTORY "Répertoire invalide %s: %s" |
|||
224 BAD_FIELD_RANK "Rang %d invalide pour la colonne %s" |
|||
225 BAD_FIELD_TYPE "Mauvais type de champ %s" |
|||
226 BAD_FILE_HANDLE "Handle de fichier invalide: %s" |
|||
227 BAD_FILTER "Mauvais filtre: Opc=%d B_T=%d %d Type=%d %d" |
|||
228 BAD_FILTER_CONV "Conversion filtre incorrecte, B_T=%d,%d" |
|||
229 BAD_FILTER_OP "Opérateur de filtre invalide %d" |
|||
230 BAD_FLD_FORMAT "Format invalide pour le champs %d de %s" |
|||
231 BAD_FLD_LENGTH "Champs %s trop long (%s --> %d) ligne %d de %s" |
|||
232 BAD_FREQ_SET "Spécification erronnée de Freq pour la colonne %s" |
|||
233 BAD_FUNC_MODE "%s: mode invalide %d" |
|||
234 BAD_HANDLE_VAL "Valeur Handle invalide" |
|||
235 BAD_HEADER "Fichier %s: bloc en-tête altéré" |
|||
236 BAD_HEAD_END "Lecture fin d'en-tête impossible" |
|||
237 BAD_INDEX_FILE "Fichier index %s corrompu" |
|||
238 BAD_LINEFLD_FMT "Format invalide ligne %d champs %d de %s" |
|||
239 BAD_LINE_LEN "Longueur ligne non égale à Lrecl" |
|||
240 BAD_LRECL "Disparité lrecl table/fichier (%d,%hd)" |
|||
241 BAD_NODE_TYPE "Type noeud erroné pour la table" |
|||
242 BAD_OFFSET_VAL "Nul offset invalide pour une table CSV" |
|||
243 BAD_OPEN_MODE "Mode d'ouverture invalide %d" |
|||
244 BAD_PARAM_TYPE "%.8s: Paramètre de type=%d invalide" |
|||
245 BAD_PARM_COUNT "Nombre de paramètres incohérent" |
|||
246 BAD_QUOTE_FIELD "Quote manquante dans %s champs %d ligne %d" |
|||
247 BAD_READ_NUMBER "Mauvais nombre %d de valeurs lues dans %s" |
|||
248 BAD_RECFM "Recfm type %d invalide pour DOSCOL" |
|||
249 BAD_RECFM_VAL "Valeur invalide %d de Recfm" |
|||
250 BAD_SET_CASE "La casse d'un tableau ne peut pas passer de non respect à respecter" |
|||
251 BAD_SET_STRING "SetValue: appel invalide pour STRING" |
|||
252 BAD_SPECIAL_COL "Colonne spéciale invalide %s" |
|||
253 BAD_SPEC_COLUMN "Colonne spéciale invalide pour ce type de table" |
|||
254 BAD_TABLE_TYPE "Type invalide %s pour la table %s" |
|||
255 BAD_TYPE_LIKE "Type(%d)= %d invalide pour LIKE" |
|||
256 BAD_VALBLK_INDX "Valeur hors limites de l'index du bloc de valeurs" |
|||
257 BAD_VALBLK_TYPE "Type=%d invalide pour un bloc de valeurs" |
|||
258 BAD_VALNODE "Type %d invalide pour le noeud valeur colonne %s" |
|||
259 BAD_VALUE_TYPE "Type de valeur invalide %d" |
|||
260 BAD_VAL_UPDATE "Impossible de déterminer quelle valeur %s doit être mise à jour" |
|||
261 BAS_NS_LIST "Format invalide de la liste des espace-noms" |
|||
262 BIN_F_TOO_LONG "Valeur trop longue pour le champ %s (%d --> %d)" |
|||
263 BIN_MODE_FAIL "Echec mode binaire: %s" |
|||
264 BLKTYPLEN_MISM "Disparité types/longueurs de bloc dans SetValue" |
|||
265 BLK_IS_NULL "Blk est nul" |
|||
266 BREAKPOINT "Point de contrôle" |
|||
267 BUILD_INDEX "Construction index %s sur %s" |
|||
268 CANNOT_OPEN "Ouverture impossible de %s" |
|||
269 CHSIZE_ERROR "Erreur dans chsize: %s" |
|||
270 COL_ALLOC_ERR "Allocation impossible du noeud colonne" |
|||
271 COL_ISNOT_TABLE "La colonne %s n'est pas dans la table %s" |
|||
272 COL_NOT_SORTED "La colonne %s de la table %s n'est pas triée" |
|||
273 COL_NUM_MISM "Disparité du nombre de colonnes" |
|||
274 COM_ERROR "Erreur Com" |
|||
275 CONCAT_SUBNODE "Concaténation de sous-noeuds impossible" |
|||
276 CONNECT_CANCEL "Connection interrompue par l'utilisateur" |
|||
277 CONTROL_C_EXIT "Exit par Ctrl-C" |
|||
278 DATABASE_LOADED "Base de données %s chargée" |
|||
279 DATA_MISALIGN "Mauvais alignement pour ce type de données" |
|||
280 DBASE_FILE "Fichier dBASE dbf: " |
|||
281 DEF_ALLOC_ERROR "Erreur d'allocation de la classe DEF %s" |
|||
282 DEL_FILE_ERR "Erreur à l'effacement de %s" |
|||
283 DEL_READ_ERROR "Delete: erreur en lecture req=%d len=%d" |
|||
284 DEL_WRITE_ERROR "Delete: erreur en écriture: %s" |
|||
285 DEPREC_FLAG "Option Flag périmée, utiliser Coltype" |
|||
286 DLL_LOAD_ERROR "Erreur %d au chargement du module %s" |
|||
287 DOM_NOT_SUPP "MS-DOM non supporté par cette version" |
|||
288 DVAL_NOTIN_LIST "Valeur %s non trouvée dans la liste des valeurs distinctes de la colonne %s" |
|||
289 EMPTY_DOC "Document vide" |
|||
290 EMPTY_FILE "%s du fichier vide %s: " |
|||
291 EOF_AFTER_LINE "Fin de fichier après la ligne %d" |
|||
292 EOF_INDEX_FILE "EOF lisant le fichier index" |
|||
293 ERROR_IN_LSK "Erreur %d dans lseek64" |
|||
294 ERROR_IN_SFP "Erreur %d dans SetFilePointer" |
|||
295 ERR_READING_REC "Erreur lisant l'enregistrement %d de %s" |
|||
296 FAIL_ADD_NODE "L'ajout du noeud %s dans la table a échoué" |
|||
297 FETCH_NO_RES "Fetch: Pas de Résultats" |
|||
298 FIELD_TOO_LONG "Valeur trop longue pour le champs %d ligne %d" |
|||
299 FILELEN_ERROR "Erreur dans %s pour %s" |
|||
300 FILE_IS_EMPTY "Le fichier %s est vide" |
|||
301 FILE_MAP_ERR "Erreur de File mapping" |
|||
302 FILE_MAP_ERROR "CreateFileMapping %s erreur rc=%d" |
|||
303 FILE_OPEN_YET "Fichier %s déjà ouvert" |
|||
304 FILE_UNFOUND "Fichier %s non trouvé" |
|||
305 FLD_TOO_LNG_FOR "Champs %d trop long pour %s ligne %d de %s" |
|||
306 FLT_BAD_RESULT "Virgule flottante: résultat inexacte" |
|||
307 FLT_DENORMAL_OP "Opérande virgule flottante non normalisé" |
|||
308 FLT_INVALID_OP "Opération virgule flottante invalide" |
|||
309 FLT_OVERFLOW "Dépassement de capacité virgule flottante" |
|||
310 FLT_STACK_CHECK "Virgule flottante: Erreur de la pile" |
|||
311 FLT_UNDERFLOW "Sous-dépassement de capacité virgule flottante" |
|||
312 FLT_ZERO_DIVIDE "Virgule flottante: division par zéro" |
|||
313 FMT_WRITE_NIY "L'écriture des fichiers %s n'est pas encore implémentée" |
|||
314 FOXPRO_FILE "Fichier FoxPro: " |
|||
315 FPUTS_ERROR "Erreur dans fputs: %s" |
|||
316 FSEEK_ERROR "Erreur dans fseek: %s" |
|||
317 FSETPOS_ERROR "Erreur dans fseek pour i=%d" |
|||
318 FTELL_ERROR "Erreur dans ftell enregistrement=%d: %s" |
|||
319 FUNCTION_ERROR "Erreur dans %s: %d" |
|||
320 FUNC_ERRNO "Erreur %d dans %s" |
|||
321 FUNC_ERROR "Erreur dans %s" |
|||
322 FUNC_ERR_S "Erreur dans %s: %s" |
|||
323 FWRITE_ERROR "Erreur dans fwrite: %s" |
|||
324 GET_DIST_VALS "Récupération des valeurs distinctes de " |
|||
325 GET_FUNC_ERR "Erreur en recherche de la fonction %s: %s" |
|||
326 GLOBAL_ERROR "Erreur d'allocation de Global (taille=%d)\n" |
|||
327 GUARD_PAGE "Violation de page de garde" |
|||
328 GZOPEN_ERROR "gzopen %s: erreur %d sur %s" |
|||
329 ILLEGAL_INSTR "Instruction illégale" |
|||
330 ILL_FILTER_CONV "Conversion implicite illégale dans un filtre" |
|||
331 INDEX_NOT_UNIQ "L'index n'est pas Unique" |
|||
332 INDEX_YET_ON "L'index %s existe déjà sur %s" |
|||
333 INDX_COL_NOTIN "La colonne index %s n'existe pas dans la table %s" |
|||
334 INDX_EXIST_YET "L'entrée index existe déjà" |
|||
335 INIT_FAILED "L'initialisation de %s a échoué" |
|||
336 INT_COL_ERROR "Erreur interne sur la colonne index %s" |
|||
337 INT_OVERFLOW "Dépassement de capacité sur entier" |
|||
338 INT_ZERO_DIVIDE "Division entière par zéro" |
|||
339 INVALID_DISP "Disposition invalide" |
|||
340 INVALID_FTYPE "SBV: Ftype %d invalide" |
|||
341 INVALID_HANDLE "Poignée invalide" |
|||
342 INVALID_OPER "Opérateur invalide %d pour %s" |
|||
343 INV_COLUMN_TYPE "Type %d Invalide pour la colonne %s" |
|||
344 INV_COL_TYPE "Type de colonne %s invalide" |
|||
345 INV_DEF_READ "Lecture différée invalide rc=%d" |
|||
346 INV_DIRCOL_OFST "Offset invalide pour une colonne DIR" |
|||
347 INV_MAP_POS "Position mémoire invalide" |
|||
348 INV_RAND_ACC "L'accès aléatoire d'une table non optimisée est impossible" |
|||
349 INV_REC_POS "Position d'enregistrement invalide" |
|||
350 INV_RESULT_TYPE "Type de résultat invalide %s" |
|||
351 INV_UPDT_TABLE "Table %s invalide pour Update" |
|||
352 IN_WITHOUT_SUB "IN ou EXISTS sans tableau ou subquery" |
|||
353 KEY_ALLOC_ERR "Erreur d'allocation d'un bloc offset clé" |
|||
354 KEY_ALLOC_ERROR "Erreur d'allocation mémoire, Klen=%d n=%d" |
|||
355 LINE_TOO_LONG "La nouvelle ligne est trop longue" |
|||
356 LIST "--Liste--" |
|||
357 LOADING_FAILED "Le chargement de %s a échoué" |
|||
358 LRECL_TOO_SMALL "Lrecl trop petit (longueur en-tête = %d)" |
|||
359 MAKE_EMPTY_FILE "Génération du fichier vide %s: %s" |
|||
360 MAKING "Génération" |
|||
361 MALLOC_ERROR "Allocation mémoire impossible par %s" |
|||
362 MAP_VIEW_ERROR "MapViewOfFile %s erreur rc=%d" |
|||
363 MAXSIZE_ERROR "Maxsize incalculable sur table ouverte" |
|||
364 MEM_ALLOC_ERR "Erreur d'allocation mémoire, taille %s = %d" |
|||
365 MEM_ALLOC_ERROR "Erreur d'allocation mémoire" |
|||
366 MISPLACED_QUOTE "Appostrophe mal placée ligne %d" |
|||
367 MISSING_ARG "Argument manquant pour l'opérateur %d" |
|||
368 MISSING_FIELD "Champs %d manquant dans %s ligne %d" |
|||
369 MISSING_FNAME "Nom du fichier manquant" |
|||
370 MISSING_NODE "Noeud %s manquant dans %s" |
|||
371 MISSING_ROWNODE "Impossible de trouver le noeud de la ligne %d" |
|||
372 MIS_TAG_LIST "Liste des balises colonne manquante" |
|||
373 MUL_MAKECOL_ERR "Erreur logique dans TABMUL::MakeCol" |
|||
374 NAME_CONV_ERR "Erreur de convertion du nom de noeud" |
|||
375 NEW_DOC_FAILED "Impossible de créer le nouveau document" |
|||
376 NEW_RETURN_NULL "NULL renvoyé par New dans PlugEvalLike" |
|||
377 NEXT_FILE_ERROR "Erreur en recherche du fichier suivant. rc=%s" |
|||
378 NONCONT_EXCEPT "Exception non-continuable" |
|||
379 NOP_ZLIB_INDEX "L'indexage d'une table zlib non optimisée est impossible" |
|||
380 NOT_A_DBF_FILE "Le fichier n'a pas le format dBASE dbf " |
|||
381 NOT_FIXED_LEN "Fichier %s non fixe, len=%d lrecl=%d" |
|||
382 NO_0DH_HEAD "0DH manquant en fin d'en-tête (dbc=%d)" |
|||
383 NO_ACTIVE_DB "Pas de base de données active" |
|||
384 NO_CHAR_FROM "Conversion de type %d en caractères impossible" |
|||
385 NO_DATE_FMT "Pas de format date pour le valblock de type %d" |
|||
386 NO_DEF_FNCCOL "Colonne fonction par défaut introuvable" |
|||
387 NO_DEF_PIVOTCOL "Colonne pivot par défaut introuvable" |
|||
388 NO_DIR_INDX_RD "Pas d'accès directe des tables %s" |
|||
389 NO_FEAT_SUPPORT "%s non supporté dans cette version" |
|||
390 NO_FLD_FORMAT "Format absent pour le champs %d de %s" |
|||
391 NO_FORMAT_COL "Type COLUMN informattable" |
|||
392 NO_FORMAT_TYPE "Le format ne peut pas être défini à partir du type %d" |
|||
393 NO_INDEX_READ "Pas d'accès directe des tables multiples" |
|||
394 NO_KEY_COL "Pas de colonne clé trouvée" |
|||
395 NO_KEY_UPDATE "Le nom des clés ne peut pas être modifié" |
|||
396 NO_MAP_INSERT "MAP incompatible avec Insert" |
|||
397 NO_MATCHING_COL "Pas de colonne correspondant à %s dans %s" |
|||
398 NO_MATCH_COL "Colonne correspondante introuvable" |
|||
399 NO_MEMORY "Mémoire pleine" |
|||
400 NO_MODE_PADDED "Mode non supporté pour les fichiers 'padded'" |
|||
401 NO_MUL_VCT "Les tables VCT ne peuvent pas être multiples" |
|||
402 NO_ODBC_DELETE "Delete ne devrait pas être appelé pour les tables ODBC" |
|||
403 NO_ODBC_DIRECT "Accès directe des tables ODBC non encore implémenté" |
|||
404 NO_ODBC_MUL "Multiple(2) non supporté pour les tables ODBC" |
|||
405 NO_ODBC_SPECOL "Pas de colonne spéciale ODBC" |
|||
406 NO_PART_DEL "Delete partiel des fichier %s impossible" |
|||
407 NO_PART_MAP "Mapping partiel non implémenté pour cet OS" |
|||
408 NO_PAR_BLK_INS "Insertion de bloc partiel impossible" |
|||
409 NO_PIV_DIR_ACC "Pas d'accès directe aux tables PIVOT" |
|||
410 NO_READ_32 "Lecture de 32 octets impossible" |
|||
411 NO_RECOV_SPACE "Espace non recouvrable dans le fichier index" |
|||
412 NO_ROWID_FOR_AM "Accès direct impossible de ROWID pour les tables de type %s" |
|||
413 NO_ROW_NODE "Le nom du Rownode n'est pas défini" |
|||
414 NO_SECTION_NAME "Nom de section manquant" |
|||
415 NO_SEC_UPDATE "Les noms de section ne peuvent pas être modifiés" |
|||
416 NO_SETPOS_YET "SetPos pas encore implémenté pour les fichier %s" |
|||
417 NO_SPEC_COL "Pas de colonne spéciales MYSQL" |
|||
418 NO_SUB_VAL "Pas de sous-value d'un tableau de type %d" |
|||
419 NO_TABCOL_DATA "Pas de données pour la table %s colonne %s" |
|||
420 NO_TABLE_DEL "Delete non autorisé pour les tables %s " |
|||
421 NO_TAB_DATA "Pas de données pour la table %s" |
|||
422 NO_VCT_DELETE "Délétion Partielle non implémentée pour les fichiers VCT" |
|||
423 NO_ZIP_DELETE "Delete sur fichier Zip non encore implementé" |
|||
424 OPENING "Ouverture" |
|||
425 OPEN_EMPTY_FILE "Ouverture du fichier vide %s: %s" |
|||
426 OPEN_ERROR "Erreur d'ouverture %d en mode %d sur %s: " |
|||
427 OPEN_ERROR_IS "Erreur à l'ouverture de %s: %s" |
|||
428 OPEN_MODE_ERROR "Erreur d'ouverture(%s) %d sur %s" |
|||
429 OPEN_STRERROR "Erreur à l'ouverture: %s" |
|||
430 OPTBLK_RD_ERR "Erreur à la lecture d'un bloc optimisation: %s" |
|||
431 OPTBLK_WR_ERR "Erreur à l'écriture d'un bloc optimisation: %s" |
|||
432 OPTIMIZING "Optimisation de " |
|||
433 OPT_BMAP_RD_ERR "Erreur en lecture des bitmaps d'optimisation: %s" |
|||
434 OPT_BMAP_WR_ERR "Erreur en écriture des bitmaps d'optimisation: %s" |
|||
435 OPT_CANCELLED "Optimisation interrompue par l'utilisateur" |
|||
436 OPT_DVAL_RD_ERR "Erreur en lecture des valeurs distinctes: %s" |
|||
437 OPT_DVAL_WR_ERR "Erreur en écriture des valeurs distinctes: %s" |
|||
438 OPT_HEAD_RD_ERR "Erreur en lecture de l'entête du fichier opt: %s" |
|||
439 OPT_HEAD_WR_ERR "Erreur en écriture de l'entête du fichier opt: %s" |
|||
440 OPT_LOGIC_ERR "Erreur logique dans SetBitmap, i=%d" |
|||
441 OPT_MAX_RD_ERR "Erreur en lecture des valeurs maxi: %s" |
|||
442 OPT_MAX_WR_ERR "Erreur en écriture des valeurs maxi: %s" |
|||
443 OPT_MIN_RD_ERR "Erreur en lecture des valeurs mini: %s" |
|||
444 OPT_MIN_WR_ERR "Erreur en écriture des valeurs mini: %s" |
|||
445 OPT_NOT_MATCH "Le fichier opt %s n'est pas à jour" |
|||
446 PAGE_ERROR "Erreur de pagination" |
|||
447 PARM_CNT_MISS "Disparité du nombre de Paramètres" |
|||
448 PREC_VBLP_NULL "ARRAY SetPrecision: Vblp est NULL" |
|||
449 PRIV_INSTR "Instruction privilégiée" |
|||
450 PROCADD_ERROR "Erreur %d sur l'adresse de %s" |
|||
451 QUERY_CANCELLED "Requête interrompue par l'utilisateur" |
|||
452 RANGE_NO_JOIN "Range non compatible avec les index de jointure" |
|||
453 RC_READING "rc=%d en lecture de la table %s" |
|||
454 READY "Prêt" |
|||
455 READ_ERROR "Erreur en lecture sur %s: %s" |
|||
456 READ_ONLY "Cette table protégée en lecture seule ne peut être modifiée" |
|||
457 READ_SEEK_ERROR "Erreur de recherche en lecture: %s" |
|||
458 REGISTER_ERR "Enregistrement NS impossible, préfix='%s' et href='%s'" |
|||
459 REMOVE_ERROR "Erreur en supprimant %s: %s" |
|||
460 RENAME_ERROR "Erreur renommant %s en %s: %s" |
|||
461 ROWID_NOT_IMPL "RowNumber non implémenté pour les tables de type %s" |
|||
462 SEC_KEY_FIRST "Les sections et clés doivent être insérées en premier" |
|||
463 SEC_NAME_FIRST "Le nom de section doit être en tête de liste en insertion" |
|||
464 SEP_IN_FIELD "Le champ %d contient le caractère séparateur" |
|||
465 SEQUENCE_ERROR "HSTMT: Allocation hors séquence" |
|||
466 SETEOF_ERROR "Erreur %d dans SetEndOfFile" |
|||
467 SETRECPOS_NIY "SetRecpos non implémenté pour ce type de table" |
|||
468 SET_STR_TRUNC "SetValue: Chaîne de caractères tronquée" |
|||
469 SFP_ERROR "Erreur sur SetFilePointer: %s" |
|||
470 SHARED_LIB_ERR "Erreur au chargement de la librairie partagée %s: %s" |
|||
471 SINGLE_STEP "Pas à pas" |
|||
472 SORTING_VAL "Tri de %d valeurs" |
|||
473 SPCOL_READONLY "La colonne spéciale %s est en lecture seulement" |
|||
474 SQL_CONF_ERROR "Erreur SQL: SQL_CONFORMANCE" |
|||
475 SRCH_CLOSE_ERR "Erreur à la fermeture de l'Handle de recherche" |
|||
476 SRC_TABLE_UNDEF "La table source n'est pas définie" |
|||
477 STACK_OVERFLOW "Dépassement de capacité de la pile" |
|||
478 TABDIR_READONLY "Les tables DIR sont en lecture seulement" |
|||
479 TABLE_NOT_OPT "Table non optimisable" |
|||
480 TABLE_NO_INDEX "La table %s n'est pas indexable" |
|||
481 TABLE_READ_ONLY "Les tables %s sont en lecture seulement " |
|||
482 TABMUL_READONLY "Les tables multiples sont en lecture seulement" |
|||
483 TOO_MANY_FIELDS "Trop de champs ligne %d de %s" |
|||
484 TOO_MANY_JUMPS "Trop de niveaux de saut" |
|||
485 TOO_MANY_KEYS "Trop de clés (%d)" |
|||
486 TO_BLK_IS_NULL "To Blk est nul" |
|||
487 TRUNCATE_ERROR "Erreur en troncation: %s" |
|||
488 TRUNC_BY_ESTIM "Tronqué par l'option Estimate" |
|||
489 TYPE_MISMATCH "Clé et source ne sont pas du même type" |
|||
490 TYPE_VALUE_ERR "Colonne %s: disparité type(%s)/valeur(%s)" |
|||
491 UNBALANCE_QUOTE "Appostrophe en trop ligne %d" |
|||
492 UNDEFINED_AM "COLBLK %s: méthode d'accès indéfinie" |
|||
493 UNKNOWN_EXCPT "Exception non répertoriée" |
|||
494 UNMATCH_FIL_ARG "Argument de filtre dépareillé" |
|||
495 UPDATE_ERROR "Erreur en Update sur %s" |
|||
496 UPD_ZIP_NOT_IMP "Mise à jour des tables ZDOS non encore implementé" |
|||
497 VALSTR_TOO_LONG "Valeur %s trop longue pour une chaîne de longueur %d" |
|||
498 VALTYPE_NOMATCH "Disparité types de valeur" |
|||
499 VALUE_ERROR "Colonne %s: bloc valeur nul" |
|||
500 VALUE_TOO_BIG "Valeur %lld trop grande pour la colonne %s" |
|||
501 VALUE_TOO_LONG "Valeur %s trop longue pour la colonne %s de longueur %d" |
|||
502 VAL_ALLOC_ERR "Allocation impossible du noeud valeur" |
|||
503 VIR_NO_DELETE "Delete impossible sur les tables %s" |
|||
504 VIR_READ_ONLY "Les tables virtuelles %s sont en lecture seulement" |
|||
505 VOID_FIRST_ARG "Le premier argument ne doit pas être vide" |
|||
506 WORK_AREA "Espace de travail: %s" |
|||
507 WRITE_SEEK_ERR "Erreur de recherche en écriture: %s" |
|||
508 WRITE_STRERROR "Erreur en écriture sur %s: %s" |
|||
509 WRITING "Ecriture" |
|||
510 WRITING_ERROR "Erreur à l'écriture de %s: %s" |
|||
511 WS_CONV_ERR "Erreur de convertion de %s en WS" |
|||
512 XCOL_MISMATCH "La colonne %s ne correspond pas à l'index" |
|||
513 XFILE_READERR "Erreur %d en lisant le fichier index" |
|||
514 XFILE_WRITERR "Erreur en écrivant le fichier index: %s" |
|||
515 XMLTAB_INIT_ERR "Erreur d'initialisation de la table XML" |
|||
516 XML_INIT_ERROR "Erreur d'initialisation du nouveau fichier XML" |
|||
517 XPATH_CNTX_ERR "Le nouveau contexte XPath ne peut être créé" |
|||
518 XPATH_EVAL_ERR "Impossible d'évaluer l'emplacement xpath '%s'" |
|||
519 XPATH_NOT_SUPP "Xpath non supporté colonne %s" |
|||
4069
storage/connect/jsonudf.cpp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,247 @@ |
|||
/******************** tabjson H Declares Source Code File (.H) *******************/ |
|||
/* Name: jsonudf.h Version 1.2 */ |
|||
/* */ |
|||
/* (C) Copyright to the author Olivier BERTRAND 2015 */ |
|||
/* */ |
|||
/* This file contains the JSON UDF function and class declares. */ |
|||
/*********************************************************************************/ |
|||
#include "global.h" |
|||
#include "plgdbsem.h" |
|||
#include "block.h" |
|||
#include "osutil.h" |
|||
#include "maputil.h" |
|||
#include "json.h" |
|||
|
|||
#define UDF_EXEC_ARGS \ |
|||
UDF_INIT*, UDF_ARGS*, char*, unsigned long*, char*, char* |
|||
|
|||
/*********************************************************************************/ |
|||
/* The JSON tree node. Can be an Object or an Array. */ |
|||
/*********************************************************************************/ |
|||
typedef struct _jnode { |
|||
PSZ Key; // The key used for object |
|||
OPVAL Op; // Operator used for this node |
|||
PVAL CncVal; // To cont value used for OP_CNC |
|||
PVAL Valp; // The internal array VALUE |
|||
int Rank; // The rank in array |
|||
int Rx; // Read row number |
|||
int Nx; // Next to read row number |
|||
} JNODE, *PJNODE; |
|||
|
|||
typedef class JSNX *PJSNX; |
|||
typedef class JOUTPATH *PJTP; |
|||
typedef class JOUTALL *PJTA; |
|||
|
|||
extern "C" { |
|||
DllExport my_bool jsonvalue_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jsonvalue(UDF_EXEC_ARGS); |
|||
DllExport void jsonvalue_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_array_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_array(UDF_EXEC_ARGS); |
|||
DllExport void json_array_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_array_add_values_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_array_add_values(UDF_EXEC_ARGS); |
|||
DllExport void json_array_add_values_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_array_add_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_array_add(UDF_EXEC_ARGS); |
|||
DllExport void json_array_add_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_array_delete_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_array_delete(UDF_EXEC_ARGS); |
|||
DllExport void json_array_delete_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_object_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_object(UDF_EXEC_ARGS); |
|||
DllExport void json_object_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_object_nonull_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_object_nonull(UDF_EXEC_ARGS); |
|||
DllExport void json_object_nonull_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_object_add_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_object_add(UDF_EXEC_ARGS); |
|||
DllExport void json_object_add_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_object_delete_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_object_delete(UDF_EXEC_ARGS); |
|||
DllExport void json_object_delete_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_object_list_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_object_list(UDF_EXEC_ARGS); |
|||
DllExport void json_object_list_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_array_grp_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport void json_array_grp_add(UDF_INIT *, UDF_ARGS *, char *, char *); |
|||
DllExport char *json_array_grp(UDF_EXEC_ARGS); |
|||
DllExport void json_array_grp_clear(UDF_INIT *, char *, char *); |
|||
DllExport void json_array_grp_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_object_grp_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport void json_object_grp_add(UDF_INIT *, UDF_ARGS *, char *, char *); |
|||
DllExport char *json_object_grp(UDF_EXEC_ARGS); |
|||
DllExport void json_object_grp_clear(UDF_INIT *, char *, char *); |
|||
DllExport void json_object_grp_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_item_merge_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_item_merge(UDF_EXEC_ARGS); |
|||
DllExport void json_item_merge_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_get_item_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_get_item(UDF_EXEC_ARGS); |
|||
DllExport void json_get_item_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jsonget_string_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jsonget_string(UDF_EXEC_ARGS); |
|||
DllExport void jsonget_string_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jsonget_int_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport long long jsonget_int(UDF_INIT*, UDF_ARGS*, char*, char*); |
|||
DllExport void jsonget_int_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jsonget_real_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport double jsonget_real(UDF_INIT*, UDF_ARGS*, char*, char*); |
|||
DllExport void jsonget_real_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jsonlocate_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jsonlocate(UDF_EXEC_ARGS); |
|||
DllExport void jsonlocate_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_locate_all_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_locate_all(UDF_EXEC_ARGS); |
|||
DllExport void json_locate_all_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_file_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_file(UDF_EXEC_ARGS); |
|||
DllExport void json_file_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jfile_make_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jfile_make(UDF_EXEC_ARGS); |
|||
DllExport void jfile_make_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_array_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_array(UDF_EXEC_ARGS); |
|||
DllExport void jbin_array_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_array_add_values_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_array_add_values(UDF_EXEC_ARGS); |
|||
DllExport void jbin_array_add_values_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_array_add_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_array_add(UDF_EXEC_ARGS); |
|||
DllExport void jbin_array_add_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_array_delete_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_array_delete(UDF_EXEC_ARGS); |
|||
DllExport void jbin_array_delete_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_object_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_object(UDF_EXEC_ARGS); |
|||
DllExport void jbin_object_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_object_nonull_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_object_nonull(UDF_EXEC_ARGS); |
|||
DllExport void jbin_object_nonull_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_object_add_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_object_add(UDF_EXEC_ARGS); |
|||
DllExport void jbin_object_add_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_object_delete_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_object_delete(UDF_EXEC_ARGS); |
|||
DllExport void jbin_object_delete_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_object_list_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_object_list(UDF_EXEC_ARGS); |
|||
DllExport void jbin_object_list_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_get_item_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_get_item(UDF_EXEC_ARGS); |
|||
DllExport void jbin_get_item_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_item_merge_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_item_merge(UDF_EXEC_ARGS); |
|||
DllExport void jbin_item_merge_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool jbin_file_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *jbin_file(UDF_EXEC_ARGS); |
|||
DllExport void jbin_file_deinit(UDF_INIT*); |
|||
|
|||
DllExport my_bool json_serialize_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *json_serialize(UDF_EXEC_ARGS); |
|||
DllExport void json_serialize_deinit(UDF_INIT*); |
|||
} // extern "C" |
|||
|
|||
/*********************************************************************************/ |
|||
/* Structure JPN. Used to make the locate path. */ |
|||
/*********************************************************************************/ |
|||
typedef struct _jpn { |
|||
enum JTYP Type; |
|||
PSZ Key; |
|||
int N; |
|||
} JPN, *PJPN; |
|||
|
|||
/*********************************************************************************/ |
|||
/* Class JSNX: JSON access method. */ |
|||
/*********************************************************************************/ |
|||
class JSNX : public BLOCK { |
|||
public: |
|||
// Constructors |
|||
JSNX(PGLOBAL g, PJSON row, int type, int len = 64, int prec = 0); |
|||
|
|||
// Implementation |
|||
int GetPrecision(void) {return Prec;} |
|||
PVAL GetValue(void) {return Value;} |
|||
|
|||
// Methods |
|||
my_bool SetJpath(PGLOBAL g, char *path, my_bool jb = false); |
|||
my_bool ParseJpath(PGLOBAL g); |
|||
void ReadValue(PGLOBAL g); |
|||
PJVAL GetValue(PGLOBAL g, PJSON row, int i, my_bool b = true); |
|||
PJVAL GetJson(PGLOBAL g); |
|||
char *Locate(PGLOBAL g, PJSON jsp, PJVAL jvp, int k = 1); |
|||
char *LocateAll(PGLOBAL g, PJSON jsp, PJVAL jvp, int mx = 10); |
|||
|
|||
protected: |
|||
my_bool SetArrayOptions(PGLOBAL g, char *p, int i, PSZ nm); |
|||
PVAL GetColumnValue(PGLOBAL g, PJSON row, int i); |
|||
PVAL ExpandArray(PGLOBAL g, PJAR arp, int n); |
|||
PVAL CalculateArray(PGLOBAL g, PJAR arp, int n); |
|||
PVAL MakeJson(PGLOBAL g, PJSON jsp); |
|||
void SetJsonValue(PGLOBAL g, PVAL vp, PJVAL val, int n); |
|||
my_bool LocateArray(PJAR jarp); |
|||
my_bool LocateObject(PJOB jobp); |
|||
my_bool LocateValue(PJVAL jvp); |
|||
my_bool LocateArrayAll(PJAR jarp); |
|||
my_bool LocateObjectAll(PJOB jobp); |
|||
my_bool LocateValueAll(PJVAL jvp); |
|||
my_bool CompareTree(PJSON jp1, PJSON jp2); |
|||
my_bool AddPath(void); |
|||
|
|||
// Default constructor not to be used |
|||
JSNX(void) {} |
|||
|
|||
// Members |
|||
PJSON Row; |
|||
PJVAL Jvalp; |
|||
PJPN Jpnp; |
|||
JOUTSTR *Jp; |
|||
JNODE *Nodes; // The intermediate objects |
|||
PVAL Value; |
|||
PVAL MulVal; // To value used by multiple column |
|||
char *Jpath; // The json path |
|||
int Buf_Type; |
|||
int Long; |
|||
int Prec; |
|||
int Nod; // The number of intermediate objects |
|||
int Xnod; // Index of multiple values |
|||
int K; // Kth item to locate |
|||
int I; // Index of JPN |
|||
int Imax; // Max number of JPN's |
|||
int B; // Index base |
|||
my_bool Xpd; // True for expandable column |
|||
my_bool Parsed; // True when parsed |
|||
my_bool Found; // Item found by locate |
|||
}; // end of class JSNX |
|||
@ -0,0 +1,100 @@ |
|||
SET NAMES utf8; |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CONNECTION='Bad connection string'; |
|||
ERROR HY000: SQLDriverConnect: [unixODBC][Driver Manager]Data source name not found, and no default driver specified |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Sources; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`Name` varchar(256) NOT NULL, |
|||
`Description` varchar(256) NOT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='ODBC' `CATFUNC`='Sources' |
|||
SELECT * FROM t1; |
|||
Name Description |
|||
Firebird Firebird |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Drivers; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`Description` char(128) NOT NULL, |
|||
`Attributes` varchar(256) NOT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 `TABLE_TYPE`='ODBC' `CATFUNC`='Drivers' |
|||
SELECT * FROM t1; |
|||
Description Attributes |
|||
Firebird Description=Firebird ODBC Driver in usr;Driver=/usr/local/lib/libOdbcFb.so;Setup=/usr/local/lib/libOdbcFb.so;FileUsage=1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Tables CONNECTION='Not important'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`Table_Cat` char(128) NOT NULL, |
|||
`Table_Schema` char(128) NOT NULL, |
|||
`Table_Name` char(128) NOT NULL, |
|||
`Table_Type` char(16) NOT NULL, |
|||
`Remark` char(255) NOT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='Not important' `TABLE_TYPE`='ODBC' `CATFUNC`='Tables' |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Columns CONNECTION='Not important'; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`Table_Cat` char(128) NOT NULL, |
|||
`Table_Schema` char(128) NOT NULL, |
|||
`Table_Name` char(128) NOT NULL, |
|||
`Column_Name` char(128) NOT NULL, |
|||
`Data_Type` smallint(6) NOT NULL, |
|||
`Type_Name` char(30) NOT NULL, |
|||
`Column_Size` int(10) NOT NULL, |
|||
`Buffer_Length` int(10) NOT NULL, |
|||
`Decimal_Digits` smallint(6) NOT NULL, |
|||
`Radix` smallint(6) NOT NULL, |
|||
`Nullable` smallint(6) NOT NULL, |
|||
`Remarks` char(255) NOT NULL |
|||
) ENGINE=CONNECT DEFAULT CHARSET=latin1 CONNECTION='Not important' `TABLE_TYPE`='ODBC' `CATFUNC`='Columns' |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC TABNAME='EMPLOYEE' CONNECTION='DSN=Firebird;UID=SYSDBA;PWD=manager'; |
|||
SELECT * FROM t1; |
|||
EMP_NO FIRST_NAME LAST_NAME PHONE_EXT HIRE_DATE DEPT_NO JOB_CODE JOB_GRADE JOB_COUNTRY SALARY FULL_NAME |
|||
2 Robert Nelson 250 1988-12-28 00:00:00 600 VP 2 USA 105900.00 Nelson, Robert |
|||
4 Bruce Young 233 1988-12-28 00:00:00 621 Eng 2 USA 97500.00 Young, Bruce |
|||
5 Kim Lambert 22 1989-02-06 00:00:00 130 Eng 2 USA 102750.00 Lambert, Kim |
|||
8 Leslie Johnson 410 1989-04-05 00:00:00 180 Mktg 3 USA 64635.00 Johnson, Leslie |
|||
9 Phil Forest 229 1989-04-17 00:00:00 622 Mngr 3 USA 75060.00 Forest, Phil |
|||
11 K. J. Weston 34 1990-01-17 00:00:00 130 SRep 4 USA 86292.94 Weston, K. J. |
|||
12 Terri Lee 256 1990-05-01 00:00:00 000 Admin 4 USA 53793.00 Lee, Terri |
|||
14 Stewart Hall 227 1990-06-04 00:00:00 900 Finan 3 USA 69482.63 Hall, Stewart |
|||
15 Katherine Young 231 1990-06-14 00:00:00 623 Mngr 3 USA 67241.25 Young, Katherine |
|||
20 Chris Papadopoulos 887 1990-01-01 00:00:00 671 Mngr 3 USA 89655.00 Papadopoulos, Chris |
|||
24 Pete Fisher 888 1990-09-12 00:00:00 671 Eng 3 USA 81810.19 Fisher, Pete |
|||
28 Ann Bennet 5 1991-02-01 00:00:00 120 Admin 5 England 22935.00 Bennet, Ann |
|||
29 Roger De Souza 288 1991-02-18 00:00:00 623 Eng 3 USA 69482.63 De Souza, Roger |
|||
34 Janet Baldwin 2 1991-03-21 00:00:00 110 Sales 3 USA 61637.81 Baldwin, Janet |
|||
36 Roger Reeves 6 1991-04-25 00:00:00 120 Sales 3 England 33620.63 Reeves, Roger |
|||
37 Willie Stansbury 7 1991-04-25 00:00:00 120 Eng 4 England 39224.06 Stansbury, Willie |
|||
44 Leslie Phong 216 1991-06-03 00:00:00 623 Eng 4 USA 56034.38 Phong, Leslie |
|||
45 Ashok Ramanathan 209 1991-08-01 00:00:00 621 Eng 3 USA 80689.50 Ramanathan, Ashok |
|||
46 Walter Steadman 210 1991-08-09 00:00:00 900 CFO 1 USA 116100.00 Steadman, Walter |
|||
52 Carol Nordstrom 420 1991-10-02 00:00:00 180 PRel 4 USA 42742.50 Nordstrom, Carol |
|||
61 Luke Leung 3 1992-02-18 00:00:00 110 SRep 4 USA 68805.00 Leung, Luke |
|||
65 Sue Anne O'Brien 877 1992-03-23 00:00:00 670 Admin 5 USA 31275.00 O'Brien, Sue Anne |
|||
71 Jennifer M. Burbank 289 1992-04-15 00:00:00 622 Eng 3 USA 53167.50 Burbank, Jennifer M. |
|||
72 Claudia Sutherland NULL 1992-04-20 00:00:00 140 SRep 4 Canada 100914.00 Sutherland, Claudia |
|||
83 Dana Bishop 290 1992-06-01 00:00:00 621 Eng 3 USA 62550.00 Bishop, Dana |
|||
85 Mary S. MacDonald 477 1992-06-01 00:00:00 100 VP 2 USA 111262.50 MacDonald, Mary S. |
|||
94 Randy Williams 892 1992-08-08 00:00:00 672 Mngr 4 USA 56295.00 Williams, Randy |
|||
105 Oliver H. Bender 255 1992-10-08 00:00:00 000 CEO 1 USA 212850.00 Bender, Oliver H. |
|||
107 Kevin Cook 894 1993-02-01 00:00:00 670 Dir 2 USA 111262.50 Cook, Kevin |
|||
109 Kelly Brown 202 1993-02-04 00:00:00 600 Admin 5 USA 27000.00 Brown, Kelly |
|||
110 Yuki Ichida 22 1993-02-04 00:00:00 115 Eng 3 Japan 6000000.00 Ichida, Yuki |
|||
113 Mary Page 845 1993-04-12 00:00:00 671 Eng 4 USA 48000.00 Page, Mary |
|||
114 Bill Parker 247 1993-06-01 00:00:00 623 Eng 5 USA 35000.00 Parker, Bill |
|||
118 Takashi Yamamoto 23 1993-07-01 00:00:00 115 SRep 4 Japan 7480000.00 Yamamoto, Takashi |
|||
121 Roberto Ferrari 1 1993-07-12 00:00:00 125 SRep 4 Italy 99000000.00 Ferrari, Roberto |
|||
127 Michael Yanowski 492 1993-08-09 00:00:00 100 SRep 4 USA 44000.00 Yanowski, Michael |
|||
134 Jacques Glon NULL 1993-08-23 00:00:00 123 SRep 4 France 390500.00 Glon, Jacques |
|||
136 Scott Johnson 265 1993-09-13 00:00:00 623 Doc 3 USA 60000.00 Johnson, Scott |
|||
138 T.J. Green 218 1993-11-01 00:00:00 621 Eng 4 USA 36000.00 Green, T.J. |
|||
141 Pierre Osborne NULL 1994-01-03 00:00:00 121 SRep 4 Switzerland 110000.00 Osborne, Pierre |
|||
144 John Montgomery 820 1994-03-30 00:00:00 672 Eng 5 USA 35000.00 Montgomery, John |
|||
145 Mark Guckenheimer 221 1994-05-02 00:00:00 622 Eng 5 USA 32000.00 Guckenheimer, Mark |
|||
DROP TABLE t1; |
|||
@ -0,0 +1,2 @@ |
|||
{"ISBN":"9782212090819","LANG":"fr","SUBJECT":"applications","AUTHOR":[{"FIRSTNAME":"Jean-Michel","LASTNAME":"Bernadac"},{"FIRSTNAME":"François","LASTNAME":"Knab"}],"TITLE":"Construire une application XML","PUBLISHER":{"NAME":"Eyrolles","PLACE":"Paris"},"DATEPUB":1999} |
|||
{"ISBN":"9782840825685","LANG":"fr","SUBJECT":"applications","AUTHOR":[{"FIRSTNAME":"William J.","LASTNAME":"Pardi"}],"TITLE":"XML en Action","TRANSLATED":{"PREFIX":"adapté de l'anglais par","TRANSLATOR":{"FIRSTNAME":"James","LASTNAME":"Guerin"}},"PUBLISHER":{"NAME":"Microsoft Press","PLACE":"Paris"},"DATEPUB":2001} |
|||
@ -0,0 +1,39 @@ |
|||
--disable_query_log |
|||
|
|||
DROP FUNCTION jsonvalue; |
|||
DROP FUNCTION json_array; |
|||
DROP FUNCTION json_array_add; |
|||
DROP FUNCTION json_array_add_values; |
|||
DROP FUNCTION json_array_delete; |
|||
DROP FUNCTION json_object; |
|||
DROP FUNCTION json_object_nonull; |
|||
DROP FUNCTION json_object_add; |
|||
DROP FUNCTION json_object_delete; |
|||
DROP FUNCTION json_object_list; |
|||
DROP FUNCTION json_array_grp; |
|||
DROP FUNCTION json_object_grp; |
|||
DROP FUNCTION json_item_merge; |
|||
DROP FUNCTION json_get_item; |
|||
DROP FUNCTION JsonGet_string; |
|||
DROP FUNCTION JsonGet_int; |
|||
DROP FUNCTION JsonGet_real; |
|||
DROP FUNCTION jsonlocate; |
|||
DROP FUNCTION json_locate_all; |
|||
DROP FUNCTION json_file; |
|||
DROP FUNCTION json_serialize; |
|||
DROP FUNCTION jfile_make; |
|||
DROP FUNCTION jbin_array; |
|||
DROP FUNCTION jbin_array_add_values; |
|||
DROP FUNCTION jbin_array_add; |
|||
DROP FUNCTION jbin_array_delete; |
|||
DROP FUNCTION jbin_object; |
|||
DROP FUNCTION jbin_object_nonull; |
|||
DROP FUNCTION jbin_object_add; |
|||
DROP FUNCTION jbin_object_delete; |
|||
DROP FUNCTION jbin_object_list; |
|||
DROP FUNCTION jbin_get_item; |
|||
DROP FUNCTION jbin_item_merge; |
|||
DROP FUNCTION jbin_file; |
|||
|
|||
--enable_query_log |
|||
|
|||
@ -0,0 +1,31 @@ |
|||
--source have_odbc.inc |
|||
|
|||
SET NAMES utf8; |
|||
|
|||
# MS ODBC and unixODBC return different error message text, |
|||
# so disable displaying error messages |
|||
#--disable_result_log ONCE |
|||
--error ER_UNKNOWN_ERROR |
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CONNECTION='Bad connection string'; |
|||
|
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Sources; |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Drivers; |
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Tables CONNECTION='Not important'; |
|||
SHOW CREATE TABLE t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC CATFUNC=Columns CONNECTION='Not important'; |
|||
SHOW CREATE TABLE t1; |
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC TABNAME='EMPLOYEE' CONNECTION='DSN=Firebird;UID=SYSDBA;PWD=manager'; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
@ -0,0 +1,38 @@ |
|||
/***********************************************************************/ |
|||
/* (C) Copyright to the author Olivier BERTRAND 2015 */ |
|||
/***********************************************************************/ |
|||
#include <my_global.h> |
|||
#include <mysqld.h> |
|||
#include <string.h> |
|||
|
|||
#if defined(__WIN__) |
|||
#define DllExport __declspec( dllexport ) |
|||
#else // !__WIN__ |
|||
#define DllExport |
|||
#endif // !__WIN__ |
|||
|
|||
extern "C" { |
|||
DllExport my_bool noconst_init(UDF_INIT*, UDF_ARGS*, char*); |
|||
DllExport char *noconst(UDF_INIT*, UDF_ARGS*, char*, unsigned long*, char*, char*); |
|||
} // extern "C" |
|||
|
|||
/***********************************************************************/ |
|||
/* Returns its argument saying it is not a constant. */ |
|||
/***********************************************************************/ |
|||
my_bool noconst_init(UDF_INIT *initid, UDF_ARGS *args, char *message) |
|||
{ |
|||
if (args->arg_count != 1 || args->arg_type[0] != STRING_RESULT) { |
|||
strcpy(message, "noconst unique argument must be a string"); |
|||
return true; |
|||
} // endif arg |
|||
|
|||
initid->const_item = false; // The trick! |
|||
return false; |
|||
} // end of noconst_init |
|||
|
|||
char *noconst(UDF_INIT *initid, UDF_ARGS *args, char *result, |
|||
unsigned long *res_length, char *, char *) |
|||
{ |
|||
return args->args[0]; |
|||
} // end of noconst |
|||
|
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue