transactd 2.4.5 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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;
|