transactd 2.4.0 → 2.4.2
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/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:
|