transactd 2.4.0 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA.md +37 -29
- data/BUILD_WIN-JA.md +96 -69
- data/CMakeLists.txt +7 -17
- data/README-JA.md +22 -17
- data/README.md +23 -16
- data/{RELEASE_NOTE-JA → RELEASE_NOTE-JA.md} +163 -98
- data/{RELEASE_NOTE → RELEASE_NOTE.md} +165 -99
- data/bin/common/tdclc_32_2_4.dll +0 -0
- data/bin/common/tdclc_64_2_4.dll +0 -0
- data/build/common/get_boost_libs.cmake +2 -0
- data/build/common/system.cmake +6 -4
- data/build/common/transactd_cl_output.cmake +14 -2
- data/build/common/transactd_common.cmake +34 -12
- data/build/tdclc/CMakeLists.txt +10 -2
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/CMakeLists.txt +34 -9
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclrb/CMakeLists.txt +24 -15
- data/build/tdclrb/gem/Makefile.win32-VS +2 -2
- data/build/tdclrb/gem_output.cmake +27 -10
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/engine/mysql/database.cpp +18 -18
- data/source/bzs/db/engine/mysql/database.h +4 -4
- data/source/bzs/db/engine/mysql/dbManager.cpp +1 -2
- data/source/bzs/db/engine/mysql/mysqlInternal.h +23 -2
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +3 -2
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +26 -12
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +3 -3
- data/source/bzs/db/protocol/tdap/client/field.cpp +74 -23
- data/source/bzs/db/protocol/tdap/client/field.h +3 -1
- data/source/bzs/db/protocol/tdap/client/filter.h +4 -4
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +3 -1
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +16 -9
- data/source/bzs/db/protocol/tdap/client/memRecord.h +2 -2
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +3 -2
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +12 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +1 -0
- data/source/bzs/db/protocol/tdap/client/table.cpp +60 -109
- data/source/bzs/db/protocol/tdap/client/table.h +2 -1
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +13 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +1 -1
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +8 -8
- data/source/bzs/db/protocol/tdap/fieldComp.h +6 -0
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +147 -46
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +78 -0
- data/source/bzs/db/protocol/tdap/tdapSchema.h +6 -1
- data/source/bzs/db/protocol/tdap/tdapcapi.h +3 -3
- data/source/bzs/db/transactd/transactd.cpp +1 -1
- data/source/bzs/env/compiler.h +12 -0
- data/source/bzs/env/tcharMinGW.h +1 -0
- data/source/bzs/netsvc/client/tcpClient.h +4 -2
- data/source/bzs/netsvc/server/serverCpt.cpp +1 -0
- data/source/bzs/netsvc/server/serverTpool.cpp +3 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +2 -2
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +6 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +2 -2
- data/source/global/ormsrcgen/srcgen.cpp +1 -2
- data/source/linux/tchar.h +1 -0
- metadata +4 -4
@@ -367,7 +367,7 @@ public:
|
|
367
367
|
: m_fdi(createFdi((FDI*)0)), m_map(*m_fdi), m_option(0)
|
368
368
|
{
|
369
369
|
init(mgr, m_map.getTableName());
|
370
|
-
if (
|
370
|
+
if (m_tb.get() && m_fdi)
|
371
371
|
initFdi(m_fdi, m_tb.get());
|
372
372
|
}
|
373
373
|
|
@@ -375,7 +375,7 @@ public:
|
|
375
375
|
: m_fdi(createFdi((FDI*)0)), m_map(*m_fdi), m_option(0)
|
376
376
|
{
|
377
377
|
init(db, m_map.getTableName(), mode);
|
378
|
-
if (
|
378
|
+
if (m_tb.get() && m_fdi)
|
379
379
|
initFdi(m_fdi, m_tb.get());
|
380
380
|
}
|
381
381
|
|
@@ -383,7 +383,7 @@ public:
|
|
383
383
|
: m_fdi(createFdi((FDI*)0)), m_map(*m_fdi), m_option(0)
|
384
384
|
{
|
385
385
|
init(mgr, tableName);
|
386
|
-
if (
|
386
|
+
if (m_tb.get() && m_fdi)
|
387
387
|
initFdi(m_fdi, m_tb.get());
|
388
388
|
}
|
389
389
|
|
@@ -400,7 +400,7 @@ public:
|
|
400
400
|
: m_fdi(createFdi((FDI*)0)), m_map(*m_fdi), m_option(0)
|
401
401
|
{
|
402
402
|
init(db, tableName, mode);
|
403
|
-
if (
|
403
|
+
if (m_tb.get() && m_fdi)
|
404
404
|
initFdi(m_fdi, m_tb.get());
|
405
405
|
}
|
406
406
|
|
@@ -409,7 +409,7 @@ public:
|
|
409
409
|
: m_fdi(createFdi((FDI*)0)), m_map(*m_fdi), m_option(0)
|
410
410
|
{
|
411
411
|
init(db, tableName, mode);
|
412
|
-
if (
|
412
|
+
if (m_tb.get() && m_fdi)
|
413
413
|
initFdi(m_fdi, m_tb.get());
|
414
414
|
}
|
415
415
|
|
@@ -418,7 +418,7 @@ public:
|
|
418
418
|
: m_fdi(createFdi((FDI*)0)), m_map(*m_fdi), m_option(0)
|
419
419
|
{
|
420
420
|
init(db, tableIndex, mode);
|
421
|
-
if (
|
421
|
+
if (m_tb.get() && m_fdi)
|
422
422
|
initFdi(m_fdi, m_tb.get());
|
423
423
|
}
|
424
424
|
|
@@ -427,7 +427,7 @@ public:
|
|
427
427
|
: m_fdi(createFdi((FDI*)0)), m_map(*m_fdi), m_option(0)
|
428
428
|
{
|
429
429
|
init(db, tableIndex, mode);
|
430
|
-
if (
|
430
|
+
if (m_tb.get() && m_fdi)
|
431
431
|
initFdi(m_fdi, m_tb.get());
|
432
432
|
}
|
433
433
|
|
@@ -756,7 +756,7 @@ public:
|
|
756
756
|
(m_map.compKeyValue(mdlb, mdl, m_tb->keyNum()) == true))
|
757
757
|
{
|
758
758
|
m_map.setKeyValues(mdl, fds, m_tb->keyNum());
|
759
|
-
keydef* kd = &m_tb->tableDef()->keyDefs[m_tb->keyNum()];
|
759
|
+
keydef* kd = &m_tb->tableDef()->keyDefs[(int)m_tb->keyNum()];
|
760
760
|
for (int i = 0; i < kd->segmentCount; ++i)
|
761
761
|
q.addSeekKeyValue(fds[kd->segments[i].fieldNum].c_str());
|
762
762
|
}
|
@@ -55,6 +55,12 @@ template <class T> inline int compare(const char* l, const char* r)
|
|
55
55
|
return 0;
|
56
56
|
}
|
57
57
|
|
58
|
+
template <class T> inline int bitMask(const char* l, const char* r)
|
59
|
+
{
|
60
|
+
T v = *((T*)l) & *((T*)r);
|
61
|
+
return (int)(*((T*)r) - v);
|
62
|
+
}
|
63
|
+
|
58
64
|
template <class T> inline int compare(T l, T r)
|
59
65
|
{
|
60
66
|
if (l < r)
|
@@ -136,6 +136,21 @@ inline unsigned short position::packLen(const resultField* rf) const
|
|
136
136
|
return m_tb->fieldDataLen(rf->fieldNum);
|
137
137
|
}
|
138
138
|
|
139
|
+
template <class T> inline
|
140
|
+
int bitMask(const char* l, const char* r)
|
141
|
+
{
|
142
|
+
T v = *((T*)l) & *((T*)r);
|
143
|
+
return (int)(*((T*)r) - v);
|
144
|
+
}
|
145
|
+
|
146
|
+
inline int bitMask24(const char* l, const char* r)
|
147
|
+
{
|
148
|
+
int lv = ((*((int*)l) & 0xFFFFFF) << 8) / 0x100;
|
149
|
+
int rv = ((*((int*)r) & 0xFFFFFF) << 8) / 0x100;
|
150
|
+
int v = lv & rv;
|
151
|
+
return rv - v;
|
152
|
+
}
|
153
|
+
|
139
154
|
inline int compareUint24(const char* l, const char* r)
|
140
155
|
{
|
141
156
|
unsigned int lv = *((unsigned int*)l) & 0xFFFFFF;
|
@@ -302,18 +317,36 @@ public:
|
|
302
317
|
case ft_autoinc:
|
303
318
|
case ft_currency:
|
304
319
|
{
|
305
|
-
|
320
|
+
if (logType & 8)
|
306
321
|
{
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
322
|
+
switch (len)
|
323
|
+
{
|
324
|
+
case 1:
|
325
|
+
return bitMask<char>(l, r);
|
326
|
+
case 2:
|
327
|
+
return bitMask<short>(l, r);
|
328
|
+
case 3:
|
329
|
+
return bitMask24(l, r);
|
330
|
+
case 4:
|
331
|
+
return bitMask<int>(l, r);
|
332
|
+
case 8:
|
333
|
+
return bitMask<__int64>(l, r);
|
334
|
+
}
|
335
|
+
}else
|
336
|
+
{
|
337
|
+
switch (len)
|
338
|
+
{
|
339
|
+
case 1:
|
340
|
+
return compare<char>(l, r);
|
341
|
+
case 2:
|
342
|
+
return compare<short>(l, r);
|
343
|
+
case 3:
|
344
|
+
return compareInt24(l, r);
|
345
|
+
case 4:
|
346
|
+
return compare<int>(l, r);
|
347
|
+
case 8:
|
348
|
+
return compare<__int64>(l, r);
|
349
|
+
}
|
317
350
|
}
|
318
351
|
}
|
319
352
|
case ft_mychar:
|
@@ -334,18 +367,36 @@ public:
|
|
334
367
|
case ft_timestamp:
|
335
368
|
case ft_mydate:
|
336
369
|
{
|
337
|
-
|
370
|
+
if (logType & 8)
|
338
371
|
{
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
372
|
+
switch (len)
|
373
|
+
{
|
374
|
+
case 1:
|
375
|
+
return bitMask<char>(l, r);
|
376
|
+
case 2:
|
377
|
+
return bitMask<short>(l, r);
|
378
|
+
case 3:
|
379
|
+
return bitMask24(l, r);
|
380
|
+
case 4:
|
381
|
+
return bitMask<int>(l, r);
|
382
|
+
case 8:
|
383
|
+
return bitMask<__int64>(l, r);
|
384
|
+
}
|
385
|
+
}else
|
386
|
+
{
|
387
|
+
switch (len)
|
388
|
+
{
|
389
|
+
case 1:
|
390
|
+
return compare<unsigned char>(l, r);
|
391
|
+
case 2:
|
392
|
+
return compare<unsigned short>(l, r);
|
393
|
+
case 3:
|
394
|
+
return compareUint24(l, r);
|
395
|
+
case 4:
|
396
|
+
return compare<unsigned int>(l, r);
|
397
|
+
case 8:
|
398
|
+
return compare<unsigned __int64>(l, r);
|
399
|
+
}
|
349
400
|
}
|
350
401
|
}
|
351
402
|
|
@@ -391,6 +442,18 @@ public:
|
|
391
442
|
return 0;
|
392
443
|
};
|
393
444
|
#else // COMP_USE_FUNCTION_POINTER
|
445
|
+
template <class T>
|
446
|
+
inline int compBitAnd(const char* l, const char* r, int sizeByte) const
|
447
|
+
{
|
448
|
+
return bitMask<T>(l, r);
|
449
|
+
}
|
450
|
+
|
451
|
+
inline int compBitAnd24(const char* l, const char* r, int sizeByte) const
|
452
|
+
{
|
453
|
+
int lv = ((*((int*)l) & 0xFFFFFF) << 8) / 0x100;
|
454
|
+
int rv = ((*((int*)r) & 0xFFFFFF) << 8) / 0x100;
|
455
|
+
return bitMask<int>((const char*)&lv, (const char*)&rv);
|
456
|
+
}
|
394
457
|
|
395
458
|
template <class T>
|
396
459
|
int compNumber(const char* l, const char* r, int sizeByte) const
|
@@ -450,7 +513,7 @@ public:
|
|
450
513
|
return compareBlobType(l, r, type == ft_myblob, logType, sizeByte);
|
451
514
|
}
|
452
515
|
|
453
|
-
compFunc getCompFunc(int sizeByte) const
|
516
|
+
compFunc getCompFunc(int sizeByte, char opr) const
|
454
517
|
{
|
455
518
|
switch (type)
|
456
519
|
{
|
@@ -458,18 +521,36 @@ public:
|
|
458
521
|
case ft_autoinc:
|
459
522
|
case ft_currency:
|
460
523
|
{
|
461
|
-
|
524
|
+
if (opr & 8)
|
462
525
|
{
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
526
|
+
switch (len)
|
527
|
+
{
|
528
|
+
case 1:
|
529
|
+
return &logicalField::compBitAnd<char>;
|
530
|
+
case 2:
|
531
|
+
return &logicalField::compBitAnd<short>;
|
532
|
+
case 3:
|
533
|
+
return &logicalField::compBitAnd24;
|
534
|
+
case 4:
|
535
|
+
return &logicalField::compBitAnd<int>;
|
536
|
+
case 8:
|
537
|
+
return &logicalField::compBitAnd<__int64>;
|
538
|
+
}
|
539
|
+
}else
|
540
|
+
{
|
541
|
+
switch (len)
|
542
|
+
{
|
543
|
+
case 1:
|
544
|
+
return &logicalField::compNumber<char>;
|
545
|
+
case 2:
|
546
|
+
return &logicalField::compNumber<short>;
|
547
|
+
case 3:
|
548
|
+
return &logicalField::compNumber24;
|
549
|
+
case 4:
|
550
|
+
return &logicalField::compNumber<int>;
|
551
|
+
case 8:
|
552
|
+
return &logicalField::compNumber<__int64>;
|
553
|
+
}
|
473
554
|
}
|
474
555
|
}
|
475
556
|
case ft_mychar:
|
@@ -490,18 +571,36 @@ public:
|
|
490
571
|
case ft_timestamp:
|
491
572
|
case ft_mydate:
|
492
573
|
{
|
493
|
-
|
574
|
+
if (opr & 8)
|
494
575
|
{
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
576
|
+
switch (len)
|
577
|
+
{
|
578
|
+
case 1:
|
579
|
+
return &logicalField::compBitAnd<char>;
|
580
|
+
case 2:
|
581
|
+
return &logicalField::compBitAnd<short>;
|
582
|
+
case 3:
|
583
|
+
return &logicalField::compBitAnd24;
|
584
|
+
case 4:
|
585
|
+
return &logicalField::compBitAnd<int>;
|
586
|
+
case 8:
|
587
|
+
return &logicalField::compBitAnd<__int64>;
|
588
|
+
}
|
589
|
+
}else
|
590
|
+
{
|
591
|
+
switch (len)
|
592
|
+
{
|
593
|
+
case 1:
|
594
|
+
return &logicalField::compNumber<unsigned char>;
|
595
|
+
case 2:
|
596
|
+
return &logicalField::compNumber<unsigned short>;
|
597
|
+
case 3:
|
598
|
+
return &logicalField::compNumberU24;
|
599
|
+
case 4:
|
600
|
+
return &logicalField::compNumber<unsigned int>;
|
601
|
+
case 8:
|
602
|
+
return &logicalField::compNumber<unsigned __int64>;
|
603
|
+
}
|
505
604
|
}
|
506
605
|
}
|
507
606
|
case ft_mytime:
|
@@ -668,7 +767,7 @@ public:
|
|
668
767
|
if (m_placeHolderNum)
|
669
768
|
const_cast<logicalField*>(fd)->opr &= ~FILTER_COMBINE_PREPARE;
|
670
769
|
#ifdef COMP_USE_FUNCTION_POINTER
|
671
|
-
m_compFunc = fd->getCompFunc(m_sizeBytes);
|
770
|
+
m_compFunc = fd->getCompFunc(m_sizeBytes, fd->opr);
|
672
771
|
setWstringCompLen();
|
673
772
|
#endif
|
674
773
|
if (fd->opr == 2)
|
@@ -794,6 +893,7 @@ public:
|
|
794
893
|
switch (log)
|
795
894
|
{
|
796
895
|
case 1:
|
896
|
+
case 8:
|
797
897
|
fda.m_isMatchFunc = isMatch1;
|
798
898
|
break;
|
799
899
|
case 2:
|
@@ -803,6 +903,7 @@ public:
|
|
803
903
|
fda.m_isMatchFunc = isMatch3;
|
804
904
|
break;
|
805
905
|
case 4:
|
906
|
+
case 9:
|
806
907
|
fda.m_isMatchFunc = isMatch4;
|
807
908
|
break;
|
808
909
|
case 5:
|
@@ -297,6 +297,80 @@ unsigned int fielddef::charNum(/* int index */) const
|
|
297
297
|
return len;
|
298
298
|
}
|
299
299
|
|
300
|
+
uint_td tabledef::unPack(char* ptr, size_t size) const
|
301
|
+
{
|
302
|
+
char* pos = ptr;
|
303
|
+
const char* end = pos + size;
|
304
|
+
const char* max = pos + maxRecordLen;
|
305
|
+
int movelen;
|
306
|
+
for (int i = 0; i < fieldCount; i++)
|
307
|
+
{
|
308
|
+
fielddef& fd = fieldDefs[i];
|
309
|
+
if (fd.type == ft_myfixedbinary)
|
310
|
+
{
|
311
|
+
int dl = *((unsigned short*)(pos));
|
312
|
+
memmove(pos, pos + 2, dl);
|
313
|
+
pos += fd.len - 2;
|
314
|
+
*((unsigned short*)(pos)) = 0x00;
|
315
|
+
;
|
316
|
+
pos += 2;
|
317
|
+
}
|
318
|
+
else
|
319
|
+
{
|
320
|
+
int blen = fd.varLenBytes();
|
321
|
+
int dl = fd.len; // length
|
322
|
+
if (blen == 1)
|
323
|
+
dl = *((unsigned char*)(pos)) + blen;
|
324
|
+
else if (blen == 2)
|
325
|
+
dl = *((unsigned short*)(pos)) + blen;
|
326
|
+
if ((movelen = fd.len - dl) != 0)
|
327
|
+
{
|
328
|
+
if (max < end + movelen)
|
329
|
+
return 0;
|
330
|
+
char* src = pos + dl;
|
331
|
+
memmove(pos + fd.len, src, end - src);
|
332
|
+
memset(src, 0, movelen);
|
333
|
+
end += movelen;
|
334
|
+
}
|
335
|
+
pos += fd.len;
|
336
|
+
}
|
337
|
+
}
|
338
|
+
return (uint_td)(pos - ptr);
|
339
|
+
}
|
340
|
+
|
341
|
+
uint_td tabledef::pack(char* ptr, size_t size) const
|
342
|
+
{
|
343
|
+
char* pos = ptr;
|
344
|
+
char* end = pos + size;
|
345
|
+
int movelen;
|
346
|
+
for (int i = 0; i < fieldCount; i++)
|
347
|
+
{
|
348
|
+
fielddef& fd = fieldDefs[i];
|
349
|
+
if (fd.type == ft_myfixedbinary)
|
350
|
+
{
|
351
|
+
memmove(pos + 2, pos, fd.len - 2); // move as size pace in the field
|
352
|
+
*((unsigned short*)(pos)) = fd.len - 2; // fixed size
|
353
|
+
pos += fd.len;
|
354
|
+
}
|
355
|
+
else
|
356
|
+
{
|
357
|
+
int blen = fd.varLenBytes();
|
358
|
+
int dl = fd.len; // length
|
359
|
+
if (blen == 1)
|
360
|
+
dl = *((unsigned char*)(pos)) + blen;
|
361
|
+
else if (blen == 2)
|
362
|
+
dl = *((unsigned short*)(pos)) + blen;
|
363
|
+
pos += dl;
|
364
|
+
if ((movelen = fd.len - dl) != 0)
|
365
|
+
{
|
366
|
+
end -= movelen;
|
367
|
+
memmove(pos, pos + movelen, end - pos);
|
368
|
+
}
|
369
|
+
}
|
370
|
+
}
|
371
|
+
return (uint_td)(pos - ptr);
|
372
|
+
}
|
373
|
+
|
300
374
|
ushort_td lenByCharnum(uchar_td type, uchar_td charsetIndex, ushort_td charnum)
|
301
375
|
{
|
302
376
|
ushort_td len = charnum;
|
@@ -517,6 +591,10 @@ PACKAGE uchar_td getFilterLogicTypeCode(const _TCHAR* cmpstr)
|
|
517
591
|
return (uchar_td)eLessEq;
|
518
592
|
else if (_tcscmp(cmpstr, _T("<=")) == 0)
|
519
593
|
return (uchar_td)eLessEq;
|
594
|
+
else if (_tcscmp(cmpstr, _T("&")) == 0)
|
595
|
+
return (uchar_td)eBitAnd;
|
596
|
+
else if (_tcscmp(cmpstr, _T("!&")) == 0)
|
597
|
+
return (uchar_td)eNotBitAnd;
|
520
598
|
else if (_tcscmp(cmpstr, _T("=i")) == 0)
|
521
599
|
return (uchar_td)eEqual | CMPLOGICAL_CASEINSENSITIVE;
|
522
600
|
else if (_tcscmp(cmpstr, _T(">i")) == 0)
|
@@ -719,6 +719,9 @@ struct PACKAGE tabledef
|
|
719
719
|
strncpy_s(m_tableName, TABLE_NAME_SIZE, s, sizeof(m_tableName) - 1);
|
720
720
|
}
|
721
721
|
|
722
|
+
uint_td unPack(char* ptr, size_t size) const;
|
723
|
+
uint_td pack(char* ptr, size_t size) const;
|
724
|
+
|
722
725
|
ushort_td id; // table id
|
723
726
|
|
724
727
|
#ifdef SWIG
|
@@ -824,7 +827,9 @@ enum eCompType
|
|
824
827
|
eLess = 3,
|
825
828
|
eNotEq = 4,
|
826
829
|
eGreaterEq = 5,
|
827
|
-
eLessEq = 6
|
830
|
+
eLessEq = 6,
|
831
|
+
eBitAnd = 8,
|
832
|
+
eNotBitAnd = 9
|
828
833
|
};
|
829
834
|
|
830
835
|
PACKAGE uchar_td getFilterLogicTypeCode(const _TCHAR* cmpstr);
|
@@ -503,7 +503,7 @@ struct handshale_t
|
|
503
503
|
*/
|
504
504
|
#define C_INTERFACE_VER_MAJOR "2"//##1 Build marker! Don't remove
|
505
505
|
#define C_INTERFACE_VER_MINOR "4"//##2 Build marker! Don't remove
|
506
|
-
#define C_INTERFACE_VER_RELEASE "
|
506
|
+
#define C_INTERFACE_VER_RELEASE "2"//##3 Build marker! Don't remove
|
507
507
|
|
508
508
|
/* dnamic load library name.
|
509
509
|
The default extention of Mac is ".boudle", Therefore ".so" is popular. */
|
@@ -567,7 +567,7 @@ struct handshale_t
|
|
567
567
|
|
568
568
|
#define CPP_INTERFACE_VER_MAJOR "2"//##4 Build marker! Don't remove
|
569
569
|
#define CPP_INTERFACE_VER_MINOR "4"//##5 Build marker! Don't remove
|
570
|
-
#define CPP_INTERFACE_VER_RELEASE "
|
570
|
+
#define CPP_INTERFACE_VER_RELEASE "2"//##6 Build marker! Don't remove
|
571
571
|
|
572
572
|
/* use autolink tdclcpp */
|
573
573
|
#if (__BCPLUSPLUS__ || _MSC_VER)
|
@@ -584,6 +584,6 @@ struct handshale_t
|
|
584
584
|
|
585
585
|
#define TRANSACTD_VER_MAJOR 2//##7 Build marker! Don't remove
|
586
586
|
#define TRANSACTD_VER_MINOR 4//##8 Build marker! Don't remove
|
587
|
-
#define TRANSACTD_VER_RELEASE
|
587
|
+
#define TRANSACTD_VER_RELEASE 2//##9 Build marker! Don't remove
|
588
588
|
|
589
589
|
#endif // BZS_DB_PROTOCOL_TDAP_TDAPCAPI_H
|
@@ -344,7 +344,7 @@ static st_mysql_show_var g_statusVariables[] = {
|
|
344
344
|
{ "trnsctd_pipe_wait_threads", (char*)&pipe::g_waitThread, SHOW_INT },
|
345
345
|
#endif
|
346
346
|
{ "trnsctd_cur_open_databases", (char*)&g_openDatabases, SHOW_INT },
|
347
|
-
{
|
347
|
+
{ NULL, NULL, (enum_mysql_show_type)0 }
|
348
348
|
};
|
349
349
|
|
350
350
|
/** plugin struct.
|
data/source/bzs/env/compiler.h
CHANGED
@@ -143,6 +143,14 @@
|
|
143
143
|
|
144
144
|
|
145
145
|
// compiler name
|
146
|
+
#if (_MSC_VER == 1400)
|
147
|
+
#define COMPILER_VERSTR "vc80"
|
148
|
+
#endif
|
149
|
+
|
150
|
+
#if (_MSC_VER == 1500)
|
151
|
+
#define COMPILER_VERSTR "vc90"
|
152
|
+
#endif
|
153
|
+
|
146
154
|
#if (_MSC_VER == 1600)
|
147
155
|
#define COMPILER_VERSTR "vc100"
|
148
156
|
#endif
|
@@ -155,6 +163,10 @@
|
|
155
163
|
#define COMPILER_VERSTR "vc120"
|
156
164
|
#endif
|
157
165
|
|
166
|
+
#if (_MSC_VER == 1900)
|
167
|
+
#define COMPILER_VERSTR "vc140"
|
168
|
+
#endif
|
169
|
+
|
158
170
|
#if (__BCPLUSPLUS__ >= 0x630 && (__BCPLUSPLUS__ < 0x640))
|
159
171
|
#define COMPILER_VERSTR "bc150"
|
160
172
|
#endif
|
data/source/bzs/env/tcharMinGW.h
CHANGED
@@ -28,9 +28,11 @@
|
|
28
28
|
#if (BOOST_VERSION > 104900)
|
29
29
|
#include <boost/asio/deadline_timer.hpp>
|
30
30
|
#else
|
31
|
-
#
|
31
|
+
#if (!defined(__BCPLUSPLUS__) || defined(__clang__) || (__BCPLUSPLUS__ > 0x0651))
|
32
32
|
#include <boost/asio.hpp>
|
33
33
|
#include <boost/date_time/posix_time/posix_time.hpp>
|
34
|
+
#else
|
35
|
+
#define NO_CONNECT_TIMER
|
34
36
|
#endif
|
35
37
|
#endif
|
36
38
|
|
@@ -405,7 +407,7 @@ public:
|
|
405
407
|
|
406
408
|
/** Implementation of The TCP connection.
|
407
409
|
*/
|
408
|
-
#
|
410
|
+
#ifndef NO_CONNECT_TIMER
|
409
411
|
#define USE_CONNECT_TIMER
|
410
412
|
#endif
|
411
413
|
|
@@ -200,6 +200,7 @@ public:
|
|
200
200
|
{
|
201
201
|
m_ios.reset();
|
202
202
|
m_socket.set_option(boost::asio::ip::tcp::no_delay(true));
|
203
|
+
m_socket.set_option(boost::asio::socket_base::keep_alive(true));
|
203
204
|
boost::system::error_code ec;
|
204
205
|
m_socket.set_option(
|
205
206
|
boost::asio::socket_base::receive_buffer_size(512 * 1024), ec);
|
@@ -313,6 +313,9 @@ public:
|
|
313
313
|
{
|
314
314
|
const boost::asio::ip::tcp::no_delay nodelay(true);
|
315
315
|
m_newConnection->socket().set_option(nodelay);
|
316
|
+
m_newConnection->socket().set_option(
|
317
|
+
boost::asio::socket_base::keep_alive(true));
|
318
|
+
|
316
319
|
boost::system::error_code ec;
|
317
320
|
tcp::endpoint endpoint =
|
318
321
|
m_newConnection->socket().remote_endpoint(ec);
|
@@ -1722,7 +1722,7 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
1722
1722
|
$tb = $this->openTable($db);
|
1723
1723
|
Bz\pooledDbManager::setMaxConnections(3);
|
1724
1724
|
// Lock last record and insert to next of it
|
1725
|
-
|
1725
|
+
/*$w = new SeekLessThanWorker();
|
1726
1726
|
$tb->setFV(FDI_ID, 300000);
|
1727
1727
|
$tb->seekLessThan(false, Bz\transactd::ROW_LOCK_X);
|
1728
1728
|
$this->assertEquals($tb->stat(), 0);
|
@@ -1755,7 +1755,7 @@ class transactdTest extends PHPUnit_Framework_TestCase
|
|
1755
1755
|
$tb->del();
|
1756
1756
|
$this->assertEquals($tb->stat(), 0);
|
1757
1757
|
}
|
1758
|
-
}
|
1758
|
+
}*/
|
1759
1759
|
// Lock last record and delete it
|
1760
1760
|
$w = new SeekLessThanWorker();
|
1761
1761
|
$tb->setFV(FDI_ID, 300000);
|
@@ -113,7 +113,7 @@ const _TCHAR* makeUri(const _TCHAR* protocol, const _TCHAR* host,
|
|
113
113
|
const _TCHAR* dbname, const _TCHAR* dbfile=_T(""))
|
114
114
|
{
|
115
115
|
connectParams cp(protocol, host, dbname, dbfile, g_userName, g_password);
|
116
|
-
|
116
|
+
_tcscpy_s(g_uri, 260, cp.uri());
|
117
117
|
/*if (dbfile)
|
118
118
|
_stprintf_s(g_uri, MAX_PATH, _T("%s://%s/%s?dbfile=%s"), protocol, host,
|
119
119
|
dbname, dbfile);
|
@@ -3648,7 +3648,7 @@ void testGetEqualKanji(database* db)
|
|
3648
3648
|
void testResultField(database* db)
|
3649
3649
|
{
|
3650
3650
|
table* tb = openTable(db);
|
3651
|
-
resultField rf;
|
3651
|
+
resultField rf = {0, 0};
|
3652
3652
|
rf.setParam(tb, _T("name"));
|
3653
3653
|
|
3654
3654
|
BOOST_CHECK_MESSAGE(rf.len == 33, " resultField.setParam");
|
@@ -533,8 +533,7 @@ string cppSrcGen::makeMapWriteString()
|
|
533
533
|
string cppSrcGen::makeMapKeyCompString()
|
534
534
|
{
|
535
535
|
string ret;
|
536
|
-
if (
|
537
|
-
(m_tabledef->primaryKeyNum < m_tabledef->keyCount))
|
536
|
+
if (m_tabledef->primaryKeyNum < m_tabledef->keyCount)
|
538
537
|
{
|
539
538
|
keydef* kd = &m_tabledef->keyDefs[m_tabledef->primaryKeyNum];
|
540
539
|
string idt = "\t";
|
data/source/linux/tchar.h
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transactd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BizStation Corp.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Transactd client for ruby gem
|
14
14
|
email: transactd@bizstation.jp
|
@@ -328,8 +328,8 @@ files:
|
|
328
328
|
- ./README.md
|
329
329
|
- ./README_ORMSRCGEN-JA.md
|
330
330
|
- ./README_ORMSRCGEN.md
|
331
|
-
- ./RELEASE_NOTE
|
332
|
-
- ./RELEASE_NOTE
|
331
|
+
- ./RELEASE_NOTE-JA.md
|
332
|
+
- ./RELEASE_NOTE.md
|
333
333
|
- ./transactd.gemspec
|
334
334
|
homepage: http://www.bizstation.jp/ja/transactd
|
335
335
|
licenses:
|