transactd 2.4.5 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CMakeLists.txt +1 -1
- data/README-JA.md +52 -529
- data/README.md +52 -523
- data/bin/common/tdclc_32_3_0.dll +0 -0
- data/bin/common/tdclc_64_3_0.dll +0 -0
- data/build/common/system.cmake +2 -1
- data/build/common/transactd_cl_common.cmake +3 -6
- data/build/swig/ruby/ruby.swg +85 -28
- data/build/swig/ruby/tdclrb_wrap.cpp +3195 -1578
- data/build/swig/tdcl.i +161 -5
- data/build/tdclc/CMakeLists.txt +1 -0
- data/build/tdclc/tdclc.cbproj +7 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +2 -5
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/blobStructs.h +1 -1
- data/source/bzs/db/engine/mysql/database.cpp +199 -74
- data/source/bzs/db/engine/mysql/database.h +47 -18
- data/source/bzs/db/engine/mysql/dbManager.cpp +1 -0
- data/source/bzs/db/engine/mysql/mysqlInternal.h +32 -8
- data/source/bzs/db/protocol/tdap/btrDate.cpp +110 -75
- data/source/bzs/db/protocol/tdap/btrDate.h +46 -21
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +18 -18
- data/source/bzs/db/protocol/tdap/client/activeTable.h +25 -25
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +10 -4
- data/source/bzs/db/protocol/tdap/client/client.cpp +6 -5
- data/source/bzs/db/protocol/tdap/client/client.h +82 -15
- data/source/bzs/db/protocol/tdap/client/database.cpp +531 -142
- data/source/bzs/db/protocol/tdap/client/database.h +19 -6
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +461 -408
- data/source/bzs/db/protocol/tdap/client/dbDef.h +11 -17
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +61 -13
- data/source/bzs/db/protocol/tdap/client/field.cpp +1592 -1398
- data/source/bzs/db/protocol/tdap/client/field.h +110 -121
- data/source/bzs/db/protocol/tdap/client/fields.h +40 -10
- data/source/bzs/db/protocol/tdap/client/filter.h +69 -55
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +296 -164
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +77 -25
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +31 -13
- data/source/bzs/db/protocol/tdap/client/memRecord.h +31 -21
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +69 -24
- data/source/bzs/db/protocol/tdap/client/nsTable.h +3 -1
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +1 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +46 -27
- data/source/bzs/db/protocol/tdap/client/request.h +2 -1
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +44 -9
- data/source/bzs/db/protocol/tdap/client/serializer.h +1 -1
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +182 -76
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +23 -12
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +8 -10
- data/source/bzs/db/protocol/tdap/client/table.cpp +172 -93
- data/source/bzs/db/protocol/tdap/client/table.h +112 -37
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +17 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +0 -1
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +0 -2
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +698 -14
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +723 -307
- data/source/bzs/db/protocol/tdap/myDateTime.h +294 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +164 -54
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +6 -3
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +133 -550
- data/source/bzs/db/protocol/tdap/mysql/request.h +6 -5
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +217 -82
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +1 -1
- data/source/bzs/db/protocol/tdap/tdapRequest.h +4 -9
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +808 -17
- data/source/bzs/db/protocol/tdap/tdapSchema.h +656 -164
- data/source/bzs/db/protocol/tdap/tdapcapi.h +130 -28
- data/source/bzs/db/protocol/tdap/uri.h +40 -32
- data/source/bzs/db/transactd/connManager.cpp +1 -1
- data/source/bzs/db/transactd/transactd.cpp +7 -0
- data/source/bzs/env/compiler.h +107 -94
- data/source/bzs/env/crosscompile.cpp +24 -12
- data/source/bzs/env/crosscompile.h +75 -6
- data/source/bzs/env/mbcswchrLinux.cpp +2 -2
- data/source/bzs/env/tcharMinGW.h +4 -0
- data/source/bzs/example/changeSchema.cpp +22 -17
- data/source/bzs/example/queryData.cpp +4 -0
- data/source/bzs/netsvc/client/iconnection.h +3 -1
- data/source/bzs/netsvc/client/tcpClient.h +10 -3
- data/source/bzs/rtl/stringBuffers.cpp +7 -0
- data/source/bzs/test/tdclatl/bench_query_atl.js +6 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +8 -1
- data/source/bzs/test/tdclatl/test_query_atl.js +22 -2
- data/source/bzs/test/tdclatl/test_v3.js +1017 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +55 -21
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +0 -5
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +2 -0
- data/source/bzs/test/tdclphp/transactd_v3_Test.php +743 -0
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -5
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +2 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +39 -16
- data/source/bzs/test/tdclrb/transactd_v3_spec.rb +748 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +55 -58
- data/source/bzs/test/transactdBench/transactdBench2.cpp +1 -3
- data/source/bzs/test/trdclengn/testField.h +3305 -0
- data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +1050 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +112 -190
- data/source/bzs/test/trdclengn/testbase.h +137 -0
- data/source/global/ormsrcgen/srcgen.cpp +23 -12
- data/source/global/ormsrcgen/template/ormDataClass_template.h +2 -0
- data/source/global/querystmts/querystmts.cpp +2 -3
- data/source/global/tdclatl/Bitset.cpp +38 -0
- data/source/global/tdclatl/Bitset.h +63 -0
- data/source/global/tdclatl/Database.cpp +59 -18
- data/source/global/tdclatl/Database.h +7 -4
- data/source/global/tdclatl/DbDef.cpp +6 -6
- data/source/global/tdclatl/DbDef.h +2 -1
- data/source/global/tdclatl/Field.cpp +112 -0
- data/source/global/tdclatl/Field.h +19 -5
- data/source/global/tdclatl/FieldDef.cpp +137 -16
- data/source/global/tdclatl/FieldDef.h +18 -2
- data/source/global/tdclatl/FieldDefs.cpp +54 -1
- data/source/global/tdclatl/FieldDefs.h +3 -0
- data/source/global/tdclatl/GroupQuery.cpp +8 -8
- data/source/global/tdclatl/QueryBase.cpp +65 -0
- data/source/global/tdclatl/QueryBase.h +10 -0
- data/source/global/tdclatl/Record.cpp +33 -2
- data/source/global/tdclatl/Record.h +3 -1
- data/source/global/tdclatl/RecordsetQuery.cpp +42 -0
- data/source/global/tdclatl/RecordsetQuery.h +8 -0
- data/source/global/tdclatl/Table.cpp +127 -3
- data/source/global/tdclatl/Table.h +10 -1
- data/source/global/tdclatl/TableDef.cpp +41 -8
- data/source/global/tdclatl/TableDef.h +7 -2
- data/source/global/tdclatl/activeTable.cpp +40 -71
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/tdclatl.idl +222 -28
- data/source/linux/tchar.h +100 -96
- data/transactd.gemspec +2 -2
- metadata +13 -11
- data/BUILD_UNIX-JA.md +0 -161
- data/BUILD_WIN-JA.md +0 -326
- data/README_ORMSRCGEN-JA.md +0 -115
- data/README_ORMSRCGEN.md +0 -118
- data/RELEASE_NOTE-JA.md +0 -356
- data/RELEASE_NOTE.md +0 -360
- data/bin/common/tdclc_32_2_4.dll +0 -0
- data/bin/common/tdclc_64_2_4.dll +0 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +0 -375
@@ -148,6 +148,8 @@ typedef void(__STDCALL* WIN_TPOOL_SHUTDOWN_PTR)();
|
|
148
148
|
#define TD_KEY_LE_PREV_MULTI 73
|
149
149
|
#define TD_FILTER_PREPARE 74
|
150
150
|
#define TD_CONNECT 78
|
151
|
+
#define TD_STORE_TEST 79 // For test only
|
152
|
+
#define TD_SET_TIMESTAMP_MODE 80
|
151
153
|
#define TD_BEGIN_SHAPSHOT 88
|
152
154
|
#define TD_END_SNAPSHOT 89
|
153
155
|
#define TD_AUTOMEKE_SCHEMA 90
|
@@ -158,19 +160,27 @@ typedef void(__STDCALL* WIN_TPOOL_SHUTDOWN_PTR)();
|
|
158
160
|
#define TD_KEY_SEEK_MULTI 95
|
159
161
|
#define TD_ACL_RELOAD 96
|
160
162
|
#define TD_RECONNECT 97
|
163
|
+
#define TD_GET_SCHEMA 98
|
161
164
|
|
162
165
|
/** create sub operations
|
163
166
|
*/
|
164
167
|
#define CR_SUBOP_DROP -128
|
165
168
|
#define CR_SUBOP_RENAME -127
|
166
169
|
#define CR_SUBOP_SWAPNAME -126
|
170
|
+
#define CR_SUBOP_CREATE_DBONLY -125
|
167
171
|
#define CR_SUBOP_BY_FILESPEC -1
|
168
172
|
#define CR_SUBOP_BY_FILESPEC_NOCKECK 0
|
169
173
|
#define CR_SUBOP_BY_TABLEDEF 1
|
170
174
|
#define CR_SUBOP_BY_TABLEDEF_NOCKECK 2
|
175
|
+
#define CR_SUBOP_BY_SQL 3
|
176
|
+
#define CR_SUBOP_BY_SQL_NOCKECK 4
|
171
177
|
|
172
178
|
#define CR_SUB_FLAG_EXISTCHECK -1
|
173
179
|
|
180
|
+
/** TD_TABLE_INFO sub operations
|
181
|
+
*/
|
182
|
+
#define ST_SUB_GETSQL_BY_TABLEDEF -1
|
183
|
+
|
174
184
|
/** TD_ADD_SENDBLOB sub operations
|
175
185
|
*/
|
176
186
|
#define TD_ASBLOB_ENDROW -125
|
@@ -191,6 +201,13 @@ typedef void(__STDCALL* WIN_TPOOL_SHUTDOWN_PTR)();
|
|
191
201
|
#define LG_SUBOP_NEWCONNECT 3
|
192
202
|
#define LG_SUBOP_RECONNECT 4
|
193
203
|
#define LG_SUBOP_DISCONNECT_EX 5 //for reconnect test
|
204
|
+
|
205
|
+
/** TIMESTAMP_MODE
|
206
|
+
*/
|
207
|
+
#define TIMESTAMP_VALUE_CONTROL 0
|
208
|
+
#define TIMESTAMP_ALWAYS 1
|
209
|
+
|
210
|
+
|
194
211
|
/** field types
|
195
212
|
*/
|
196
213
|
#define ft_string 0
|
@@ -238,19 +255,37 @@ typedef void(__STDCALL* WIN_TPOOL_SHUTDOWN_PTR)();
|
|
238
255
|
#define ft_myfixedbinary 53
|
239
256
|
#define ft_enum 54
|
240
257
|
#define ft_set 55
|
258
|
+
#define ft_mytime_num_cmp 56 //for comare use only
|
259
|
+
#define ft_mydatetime_num_cmp 57 //for comare use only
|
260
|
+
#define ft_mytimestamp_num_cmp 58 //for comare use only
|
261
|
+
#define ft_myyear 59
|
262
|
+
#define ft_mygeometry 60
|
263
|
+
#define ft_myjson 61
|
264
|
+
#define ft_mydecimal 62
|
241
265
|
#define ft_nullindicator 255
|
242
266
|
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
267
|
+
/* compair types */
|
268
|
+
enum eCompType
|
269
|
+
{
|
270
|
+
eEqual = 1,
|
271
|
+
eGreater = 2,
|
272
|
+
eLess = 3,
|
273
|
+
eNotEq = 4,
|
274
|
+
eGreaterEq = 5,
|
275
|
+
eLessEq = 6,
|
276
|
+
eBitAnd = 8,
|
277
|
+
eNotBitAnd = 9,
|
278
|
+
eIsNull = 10,
|
279
|
+
eIsNotNull = 11
|
280
|
+
};
|
250
281
|
|
251
|
-
|
252
|
-
|
253
|
-
|
282
|
+
/* filter cobine type */
|
283
|
+
enum combineType
|
284
|
+
{
|
285
|
+
eCend,
|
286
|
+
eCand,
|
287
|
+
eCor
|
288
|
+
};
|
254
289
|
|
255
290
|
/** extruct row comp bias
|
256
291
|
*/
|
@@ -308,7 +343,20 @@ typedef void(__STDCALL* WIN_TPOOL_SHUTDOWN_PTR)();
|
|
308
343
|
#define TD_OPEN_EXCLUSIVE -4
|
309
344
|
#define TD_OPEN_READONLY_EXCLUSIVE (TD_OPEN_READONLY + TD_OPEN_EXCLUSIVE)
|
310
345
|
|
311
|
-
/**
|
346
|
+
/** @cond INTERNAL */
|
347
|
+
#define TD_OPEN_MASK_SIMPLE_NULL 0
|
348
|
+
#define TD_OPEN_MASK_MYSQL_NULL -16
|
349
|
+
#define TD_OPEN_MASK_GETSHCHEMA -32
|
350
|
+
#define TD_OPEN_MASK_GETDEFAULTIMAGE -64
|
351
|
+
|
352
|
+
#define IS_MODE_READONLY(mode) (((0 - mode) & 2) != 0)
|
353
|
+
#define IS_MODE_EXCLUSIVE(mode) (((0 - mode) & 4) != 0)
|
354
|
+
#define IS_MODE_MYSQL_NULL(mode) (((0 - mode) & 16) != 0)
|
355
|
+
#define IS_MODE_GETSCHEMA(mode) (((0 - mode) & 32) != 0)
|
356
|
+
#define IS_MODE_GETDEFAULTIMAGE(mode) (((0 - mode) & 64) != 0)
|
357
|
+
/** @endcond */
|
358
|
+
|
359
|
+
/** field algin
|
312
360
|
*/
|
313
361
|
#define BT_AL_LEFT 0
|
314
362
|
#define BT_AL_CENTER 2
|
@@ -353,7 +401,8 @@ typedef void(__STDCALL* WIN_TPOOL_SHUTDOWN_PTR)();
|
|
353
401
|
#define STATUS_INVALID_FIELDVALUE -36
|
354
402
|
#define STATUS_INVALID_VALLEN -37
|
355
403
|
#define STATUS_FIELDTYPE_NOTSUPPORT -42
|
356
|
-
|
404
|
+
#define STATUS_INVALID_NULLMODE -43
|
405
|
+
#define STATUS_TOO_LARGE_VALUE -44
|
357
406
|
|
358
407
|
#define STATUS_SUCCESS 0
|
359
408
|
#define STATUS_PROGRAM_ERROR 1
|
@@ -449,17 +498,49 @@ inline bool canRecoverNetError(short code)
|
|
449
498
|
#define TD_BACKUP_MODE_NOT_PERMIT 41
|
450
499
|
#define TD_BACKUP_MODE_SERVER_ERROR 91
|
451
500
|
|
501
|
+
#define DFV_TIMESTAMP_DEFAULT 1.0f
|
502
|
+
#define DFV_TIMESTAMP_DEFAULT_ASTR "1"
|
503
|
+
#define DFV_TIMESTAMP_DEFAULT_WSTR L"1"
|
452
504
|
|
453
505
|
/** @cond INTERNAL */
|
454
|
-
struct
|
506
|
+
struct clsrv_ver
|
455
507
|
{
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
508
|
+
union
|
509
|
+
{
|
510
|
+
ushort_td clMajor;
|
511
|
+
ushort_td srvMysqlMajor;
|
512
|
+
};
|
513
|
+
union
|
514
|
+
{
|
515
|
+
ushort_td clMinor;
|
516
|
+
ushort_td srvMysqlMinor;
|
517
|
+
};
|
518
|
+
union
|
519
|
+
{
|
520
|
+
ushort_td clRelease;
|
521
|
+
ushort_td srvMysqlRelease;
|
522
|
+
};
|
523
|
+
uchar_td srvMajor;
|
524
|
+
uchar_td srvMysqlType;
|
461
525
|
ushort_td srvMinor;
|
462
526
|
ushort_td srvRelease;
|
527
|
+
inline bool isSupportDateTimeTimeStamp() const
|
528
|
+
{
|
529
|
+
if (srvMysqlMajor >= 10) return true;
|
530
|
+
if ((srvMysqlMajor == 5) && (srvMysqlMinor > 5)) return true;
|
531
|
+
return false;
|
532
|
+
}
|
533
|
+
};
|
534
|
+
#define VER_ST_SIZE 12
|
535
|
+
|
536
|
+
#define MYSQL_TYPE_MYSQL 'M'
|
537
|
+
#define MYSQL_TYPE_MARIA 'A'
|
538
|
+
|
539
|
+
|
540
|
+
struct trdVersiton
|
541
|
+
{
|
542
|
+
char cherserServer[128];
|
543
|
+
clsrv_ver desc;
|
463
544
|
};
|
464
545
|
|
465
546
|
#define MYSQL_SCRAMBLE_LENGTH 20
|
@@ -495,16 +576,17 @@ struct handshale_t
|
|
495
576
|
#define TD_VAR_USEPIPE 14
|
496
577
|
#define TD_VAR_HSLISTENPORT 15
|
497
578
|
#define TD_VAR_USEHS 16
|
498
|
-
#define
|
579
|
+
#define TD_VAR_TIMESTAMPMODE 17
|
580
|
+
#define TD_VAR_SIZE 18
|
499
581
|
|
500
582
|
/** @endcond */
|
501
583
|
|
502
584
|
/* In the case of "tdclcppxxx" library of msvc, The ($TargetName) is not changed automatically.
|
503
585
|
If you change this version then you need change The ($TargetName) project options too.
|
504
586
|
*/
|
505
|
-
#define C_INTERFACE_VER_MAJOR "
|
506
|
-
#define C_INTERFACE_VER_MINOR "
|
507
|
-
#define C_INTERFACE_VER_RELEASE "
|
587
|
+
#define C_INTERFACE_VER_MAJOR "3"//##1 Build marker! Don't remove
|
588
|
+
#define C_INTERFACE_VER_MINOR "0"//##2 Build marker! Don't remove
|
589
|
+
#define C_INTERFACE_VER_RELEASE "0"//##3 Build marker! Don't remove
|
508
590
|
|
509
591
|
/* dnamic load library name.
|
510
592
|
The default extention of Mac is ".boudle", Therefore ".so" is popular. */
|
@@ -566,9 +648,9 @@ struct handshale_t
|
|
566
648
|
|
567
649
|
*/
|
568
650
|
|
569
|
-
#define CPP_INTERFACE_VER_MAJOR "
|
570
|
-
#define CPP_INTERFACE_VER_MINOR "
|
571
|
-
#define CPP_INTERFACE_VER_RELEASE "
|
651
|
+
#define CPP_INTERFACE_VER_MAJOR "3"//##4 Build marker! Don't remove
|
652
|
+
#define CPP_INTERFACE_VER_MINOR "0"//##5 Build marker! Don't remove
|
653
|
+
#define CPP_INTERFACE_VER_RELEASE "0"//##6 Build marker! Don't remove
|
572
654
|
|
573
655
|
/* use autolink tdclcpp */
|
574
656
|
#if (__BCPLUSPLUS__ || _MSC_VER)
|
@@ -583,8 +665,28 @@ struct handshale_t
|
|
583
665
|
#endif
|
584
666
|
#endif
|
585
667
|
|
586
|
-
|
587
|
-
|
588
|
-
#define
|
668
|
+
|
669
|
+
|
670
|
+
#define TD_CPP_LIB_NAME \
|
671
|
+
LIB_PREFIX TD_CPP_LIB_PRE CPP_INTERFACE_VERSTR SHARED_LIB_EXTENTION
|
672
|
+
|
673
|
+
#ifdef LINUX
|
674
|
+
#ifdef __APPLE__
|
675
|
+
#define TD_CPP_SO_NAME \
|
676
|
+
LIB_PREFIX TD_CPP_LIB_PRE CPP_INTERFACE_VERSTR ".dylib"
|
677
|
+
#else // NOT __APPLE__
|
678
|
+
#define TD_CPP_SO_NAME \
|
679
|
+
LIB_PREFIX TD_CPP_LIB_PRE ".so." CPP_INTERFACE_VER_MAJOR "." CPP_INTERFACE_VER_MINOR
|
680
|
+
#endif // NOT __APPLE__
|
681
|
+
#else // NOT LINUX
|
682
|
+
#define TD_CPP_SO_NAME \
|
683
|
+
LIB_PREFIX TD_CPP_LIB_PRE CPP_INTERFACE_VERSTR ".dll"
|
684
|
+
#endif // NOT LINUX
|
685
|
+
|
686
|
+
|
687
|
+
|
688
|
+
#define TRANSACTD_VER_MAJOR 3//##7 Build marker! Don't remove
|
689
|
+
#define TRANSACTD_VER_MINOR 0//##8 Build marker! Don't remove
|
690
|
+
#define TRANSACTD_VER_RELEASE 0//##9 Build marker! Don't remove
|
589
691
|
|
590
692
|
#endif // BZS_DB_PROTOCOL_TDAP_TDAPCAPI_H
|
@@ -39,6 +39,8 @@ namespace protocol
|
|
39
39
|
namespace tdap
|
40
40
|
{
|
41
41
|
|
42
|
+
/** @cond INTERNAL */
|
43
|
+
|
42
44
|
inline const _TCHAR* protocol(const _TCHAR* uri)
|
43
45
|
{
|
44
46
|
const _TCHAR* st = _tcsstr(uri, _T("tdap://"));
|
@@ -117,13 +119,15 @@ inline const _TCHAR* dbname(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
|
117
119
|
if (st)
|
118
120
|
{
|
119
121
|
st = _tcsstr(st + 3, _T("/"));
|
120
|
-
if (st)
|
122
|
+
if (st && *(++st))
|
121
123
|
{
|
122
|
-
const _TCHAR* en = _tcsstr(st
|
124
|
+
const _TCHAR* en = _tcsstr(st, _T("?"));
|
125
|
+
if (!en)
|
126
|
+
en = _tcslen(st) + st;
|
123
127
|
if (en && en > st)
|
124
128
|
{
|
125
|
-
_tcsncpy_s(buf, size, st
|
126
|
-
buf[en -
|
129
|
+
_tcsncpy_s(buf, size, st, en - st);
|
130
|
+
buf[en - st] = 0x00;
|
127
131
|
}
|
128
132
|
}
|
129
133
|
}
|
@@ -133,17 +137,17 @@ inline const _TCHAR* dbname(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
|
133
137
|
inline const _TCHAR* schemaTable(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
134
138
|
{
|
135
139
|
buf[0] = 0x00;
|
136
|
-
|
140
|
+
_TCHAR* st = _tcsstr((_TCHAR*)uri, _T("dbfile="));
|
137
141
|
if (st)
|
138
142
|
{
|
139
143
|
st+= 7;
|
140
|
-
|
144
|
+
_tcscpy_s(buf, size, st);
|
145
|
+
st = _tcschr(buf, _T('&'));
|
146
|
+
if (st) *st = 0x00;
|
147
|
+
st = buf;
|
148
|
+
const _TCHAR* en = _tcsrchr(st, _T('.'));
|
141
149
|
if (en && en > st)
|
142
|
-
{
|
143
|
-
_tcsncpy_s(buf, size, st, en - st);
|
144
150
|
buf[en - st] = 0x00;
|
145
|
-
}else if (_tcsstr(st, TRANSACTD_SCHEMANAME))
|
146
|
-
_tcscpy_s(buf, size, TRANSACTD_SCHEMANAME);
|
147
151
|
}
|
148
152
|
return buf;
|
149
153
|
}
|
@@ -169,30 +173,29 @@ inline const _TCHAR* userName(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
|
169
173
|
inline const _TCHAR* passwd(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
170
174
|
{
|
171
175
|
buf[0] = 0x00;
|
172
|
-
|
176
|
+
_TCHAR* st = _tcsstr((_TCHAR*)uri, _T("pwd="));
|
173
177
|
if (st)
|
178
|
+
{
|
174
179
|
_tcscpy_s(buf, size, st+4);
|
180
|
+
st = _tcschr(buf, _T('&'));
|
181
|
+
if (st) *st = 0x00;
|
182
|
+
}
|
175
183
|
return buf;
|
176
184
|
}
|
177
185
|
|
178
|
-
|
186
|
+
|
187
|
+
inline _TCHAR* stripParam(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
179
188
|
{
|
180
|
-
|
181
|
-
_TCHAR* st = _tcsstr(
|
189
|
+
buf[0] = 0x00;
|
190
|
+
_TCHAR* st = _tcsstr((_TCHAR*)uri, _T("://"));
|
182
191
|
if (st)
|
183
192
|
{
|
184
|
-
|
185
|
-
if (
|
193
|
+
st = _tcsstr(st + 3, _T("/"));
|
194
|
+
if (st && *(++st))
|
186
195
|
{
|
187
|
-
_tcscpy_s(
|
188
|
-
_TCHAR*
|
189
|
-
if (
|
190
|
-
*st2 = 0x00;
|
191
|
-
else
|
192
|
-
{
|
193
|
-
st2 = _tcsstr(st, _T("?pwd="));
|
194
|
-
if (st2) *st2 = 0x00;
|
195
|
-
}
|
196
|
+
_tcscpy_s(buf, size, uri);
|
197
|
+
_TCHAR* en = _tcschr(buf, _T('?'));
|
198
|
+
if (en) *en = 0x00;
|
196
199
|
}
|
197
200
|
}
|
198
201
|
return buf;
|
@@ -211,20 +214,24 @@ inline const _TCHAR* stripPasswd(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
|
211
214
|
return buf;
|
212
215
|
}
|
213
216
|
|
214
|
-
inline const _TCHAR*
|
217
|
+
inline const _TCHAR* stripAuth(const _TCHAR* uri, _TCHAR* buf, size_t size)
|
215
218
|
{
|
216
219
|
_tcscpy_s(buf, size, uri);
|
217
220
|
_TCHAR* st = _tcsstr(buf, _T("://"));
|
218
221
|
if (st)
|
219
222
|
{
|
220
|
-
_TCHAR*
|
221
|
-
if (
|
222
|
-
*(st2) = 0x00;
|
223
|
-
else
|
223
|
+
const _TCHAR* en = _tcsstr(uri, _T("@"));
|
224
|
+
if (en)
|
224
225
|
{
|
225
|
-
|
226
|
+
_tcscpy_s(st+3, size, ++en);
|
227
|
+
_TCHAR* st2 = _tcsstr(st, _T("&pwd="));
|
226
228
|
if (st2)
|
227
|
-
*
|
229
|
+
*st2 = 0x00;
|
230
|
+
else
|
231
|
+
{
|
232
|
+
st2 = _tcsstr(st, _T("?pwd="));
|
233
|
+
if (st2) *(st2 + 1) = 0x00;
|
234
|
+
}
|
228
235
|
}
|
229
236
|
}
|
230
237
|
return buf;
|
@@ -324,6 +331,7 @@ inline unsigned char* hexTobin(unsigned char* retVal, const char *src, int size)
|
|
324
331
|
return retVal;
|
325
332
|
}
|
326
333
|
|
334
|
+
/** @endcond */
|
327
335
|
|
328
336
|
} // namespace tdap
|
329
337
|
} // namespace protocol
|
@@ -233,7 +233,7 @@ const connManager::records& connManager::getDefinedDatabaseList() const
|
|
233
233
|
cp_security_ctx(thd)->skip_grants();
|
234
234
|
SQL_Strings files;
|
235
235
|
db_list(thd, &files);
|
236
|
-
#if defined(MARIADDB_10_0) || defined(MARIADDB_10_1)
|
236
|
+
#if (defined(MARIADDB_10_0) || defined(MARIADDB_10_1))
|
237
237
|
for (int i = 0; i < (int)files.elements(); ++i)
|
238
238
|
appenDbList(m_records, files.at(i));
|
239
239
|
#else
|
@@ -55,6 +55,7 @@ unsigned int g_lock_wait_timeout = 1;
|
|
55
55
|
char* g_transaction_isolation = NULL;
|
56
56
|
char* g_auth_type = NULL;
|
57
57
|
unsigned int g_pipeCommSharememSize = PIPE_SHARE_MEM_SIZE;
|
58
|
+
unsigned int g_timestamp_always = 1;
|
58
59
|
//int g_grant_apply = 0;//skip
|
59
60
|
|
60
61
|
|
@@ -273,6 +274,10 @@ static MYSQL_SYSVAR_STR(hs_port, g_hs_listenPort,
|
|
273
274
|
NULL, "9999");
|
274
275
|
static MYSQL_SYSVAR_INT(use_handlersocket, g_use_hs, PLUGIN_VAR_READONLY, "", 0,
|
275
276
|
0, 0, 0, 1, 0);
|
277
|
+
|
278
|
+
static MYSQL_SYSVAR_UINT(timestamp_always, g_timestamp_always, PLUGIN_VAR_READONLY, "", 0,
|
279
|
+
0, 1, 0, 1, 0);
|
280
|
+
|
276
281
|
#endif
|
277
282
|
|
278
283
|
/** system valiables struct.
|
@@ -289,6 +294,7 @@ static struct st_mysql_sys_var* g_systemVariables[] =
|
|
289
294
|
MYSQL_SYSVAR(lock_wait_timeout),
|
290
295
|
MYSQL_SYSVAR(transaction_isolation),
|
291
296
|
MYSQL_SYSVAR(auth_type),
|
297
|
+
MYSQL_SYSVAR(timestamp_always),
|
292
298
|
#ifdef PIPE_SERVER
|
293
299
|
MYSQL_SYSVAR(pipe_comm_sharemem_size),
|
294
300
|
MYSQL_SYSVAR(max_pipe_connections),
|
@@ -315,6 +321,7 @@ const char* get_trd_sys_var(int index)
|
|
315
321
|
case TD_VAR_LOCKWAITTIMEOUT:return (const char*)&g_lock_wait_timeout;
|
316
322
|
case TD_VAR_ISOLATION:return g_transaction_isolation;
|
317
323
|
case TD_VAR_AUTHTYPE:return g_auth_type;
|
324
|
+
case TD_VAR_TIMESTAMPMODE:return (const char*)&g_timestamp_always;
|
318
325
|
#ifdef PIPE_SERVER
|
319
326
|
case TD_VAR_PIPESHAREMEMSIZE:return (const char*)&g_pipeCommSharememSize;
|
320
327
|
case TD_VAR_MAXPIPECONNECTIONS:return (const char*)&g_maxPipeConnections;
|