transactd 2.4.5 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/CMakeLists.txt +1 -1
  3. data/README-JA.md +52 -529
  4. data/README.md +52 -523
  5. data/bin/common/tdclc_32_3_0.dll +0 -0
  6. data/bin/common/tdclc_64_3_0.dll +0 -0
  7. data/build/common/system.cmake +2 -1
  8. data/build/common/transactd_cl_common.cmake +3 -6
  9. data/build/swig/ruby/ruby.swg +85 -28
  10. data/build/swig/ruby/tdclrb_wrap.cpp +3195 -1578
  11. data/build/swig/tdcl.i +161 -5
  12. data/build/tdclc/CMakeLists.txt +1 -0
  13. data/build/tdclc/tdclc.cbproj +7 -1
  14. data/build/tdclc/tdclc.rc +4 -4
  15. data/build/tdclcpp/tdclcpp.rc +4 -4
  16. data/build/tdclcpp/tdclcpp_bc.cbproj +2 -5
  17. data/build/tdclrb/tdclrb.rc +4 -4
  18. data/source/bzs/db/blobStructs.h +1 -1
  19. data/source/bzs/db/engine/mysql/database.cpp +199 -74
  20. data/source/bzs/db/engine/mysql/database.h +47 -18
  21. data/source/bzs/db/engine/mysql/dbManager.cpp +1 -0
  22. data/source/bzs/db/engine/mysql/mysqlInternal.h +32 -8
  23. data/source/bzs/db/protocol/tdap/btrDate.cpp +110 -75
  24. data/source/bzs/db/protocol/tdap/btrDate.h +46 -21
  25. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +18 -18
  26. data/source/bzs/db/protocol/tdap/client/activeTable.h +25 -25
  27. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +10 -4
  28. data/source/bzs/db/protocol/tdap/client/client.cpp +6 -5
  29. data/source/bzs/db/protocol/tdap/client/client.h +82 -15
  30. data/source/bzs/db/protocol/tdap/client/database.cpp +531 -142
  31. data/source/bzs/db/protocol/tdap/client/database.h +19 -6
  32. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +461 -408
  33. data/source/bzs/db/protocol/tdap/client/dbDef.h +11 -17
  34. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +61 -13
  35. data/source/bzs/db/protocol/tdap/client/field.cpp +1592 -1398
  36. data/source/bzs/db/protocol/tdap/client/field.h +110 -121
  37. data/source/bzs/db/protocol/tdap/client/fields.h +40 -10
  38. data/source/bzs/db/protocol/tdap/client/filter.h +69 -55
  39. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +296 -164
  40. data/source/bzs/db/protocol/tdap/client/groupQuery.h +77 -25
  41. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +31 -13
  42. data/source/bzs/db/protocol/tdap/client/memRecord.h +31 -21
  43. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +1 -1
  44. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
  45. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +69 -24
  46. data/source/bzs/db/protocol/tdap/client/nsTable.h +3 -1
  47. data/source/bzs/db/protocol/tdap/client/recordset.cpp +1 -0
  48. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +46 -27
  49. data/source/bzs/db/protocol/tdap/client/request.h +2 -1
  50. data/source/bzs/db/protocol/tdap/client/serializer.cpp +44 -9
  51. data/source/bzs/db/protocol/tdap/client/serializer.h +1 -1
  52. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +182 -76
  53. data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +23 -12
  54. data/source/bzs/db/protocol/tdap/client/stringConverter.h +8 -10
  55. data/source/bzs/db/protocol/tdap/client/table.cpp +172 -93
  56. data/source/bzs/db/protocol/tdap/client/table.h +112 -37
  57. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +17 -0
  58. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +0 -1
  59. data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +0 -2
  60. data/source/bzs/db/protocol/tdap/client/trdormapi.h +1 -1
  61. data/source/bzs/db/protocol/tdap/fieldComp.h +698 -14
  62. data/source/bzs/db/protocol/tdap/myDateTime.cpp +723 -307
  63. data/source/bzs/db/protocol/tdap/myDateTime.h +294 -0
  64. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +164 -54
  65. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +6 -3
  66. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +133 -550
  67. data/source/bzs/db/protocol/tdap/mysql/request.h +6 -5
  68. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +217 -82
  69. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +1 -1
  70. data/source/bzs/db/protocol/tdap/tdapRequest.h +4 -9
  71. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +808 -17
  72. data/source/bzs/db/protocol/tdap/tdapSchema.h +656 -164
  73. data/source/bzs/db/protocol/tdap/tdapcapi.h +130 -28
  74. data/source/bzs/db/protocol/tdap/uri.h +40 -32
  75. data/source/bzs/db/transactd/connManager.cpp +1 -1
  76. data/source/bzs/db/transactd/transactd.cpp +7 -0
  77. data/source/bzs/env/compiler.h +107 -94
  78. data/source/bzs/env/crosscompile.cpp +24 -12
  79. data/source/bzs/env/crosscompile.h +75 -6
  80. data/source/bzs/env/mbcswchrLinux.cpp +2 -2
  81. data/source/bzs/env/tcharMinGW.h +4 -0
  82. data/source/bzs/example/changeSchema.cpp +22 -17
  83. data/source/bzs/example/queryData.cpp +4 -0
  84. data/source/bzs/netsvc/client/iconnection.h +3 -1
  85. data/source/bzs/netsvc/client/tcpClient.h +10 -3
  86. data/source/bzs/rtl/stringBuffers.cpp +7 -0
  87. data/source/bzs/test/tdclatl/bench_query_atl.js +6 -0
  88. data/source/bzs/test/tdclatl/bench_tdclatl.js +8 -1
  89. data/source/bzs/test/tdclatl/test_query_atl.js +22 -2
  90. data/source/bzs/test/tdclatl/test_v3.js +1017 -0
  91. data/source/bzs/test/tdclphp/transactd_Test.php +55 -21
  92. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +0 -5
  93. data/source/bzs/test/tdclphp/transactd_pool_Test.php +2 -0
  94. data/source/bzs/test/tdclphp/transactd_v3_Test.php +743 -0
  95. data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -5
  96. data/source/bzs/test/tdclrb/transactd_pool_spec.rb +2 -0
  97. data/source/bzs/test/tdclrb/transactd_spec.rb +39 -16
  98. data/source/bzs/test/tdclrb/transactd_v3_spec.rb +748 -0
  99. data/source/bzs/test/transactdBench/transactdBench.cpp +55 -58
  100. data/source/bzs/test/transactdBench/transactdBench2.cpp +1 -3
  101. data/source/bzs/test/trdclengn/testField.h +3305 -0
  102. data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +1050 -0
  103. data/source/bzs/test/trdclengn/test_trdclengn.cpp +112 -190
  104. data/source/bzs/test/trdclengn/testbase.h +137 -0
  105. data/source/global/ormsrcgen/srcgen.cpp +23 -12
  106. data/source/global/ormsrcgen/template/ormDataClass_template.h +2 -0
  107. data/source/global/querystmts/querystmts.cpp +2 -3
  108. data/source/global/tdclatl/Bitset.cpp +38 -0
  109. data/source/global/tdclatl/Bitset.h +63 -0
  110. data/source/global/tdclatl/Database.cpp +59 -18
  111. data/source/global/tdclatl/Database.h +7 -4
  112. data/source/global/tdclatl/DbDef.cpp +6 -6
  113. data/source/global/tdclatl/DbDef.h +2 -1
  114. data/source/global/tdclatl/Field.cpp +112 -0
  115. data/source/global/tdclatl/Field.h +19 -5
  116. data/source/global/tdclatl/FieldDef.cpp +137 -16
  117. data/source/global/tdclatl/FieldDef.h +18 -2
  118. data/source/global/tdclatl/FieldDefs.cpp +54 -1
  119. data/source/global/tdclatl/FieldDefs.h +3 -0
  120. data/source/global/tdclatl/GroupQuery.cpp +8 -8
  121. data/source/global/tdclatl/QueryBase.cpp +65 -0
  122. data/source/global/tdclatl/QueryBase.h +10 -0
  123. data/source/global/tdclatl/Record.cpp +33 -2
  124. data/source/global/tdclatl/Record.h +3 -1
  125. data/source/global/tdclatl/RecordsetQuery.cpp +42 -0
  126. data/source/global/tdclatl/RecordsetQuery.h +8 -0
  127. data/source/global/tdclatl/Table.cpp +127 -3
  128. data/source/global/tdclatl/Table.h +10 -1
  129. data/source/global/tdclatl/TableDef.cpp +41 -8
  130. data/source/global/tdclatl/TableDef.h +7 -2
  131. data/source/global/tdclatl/activeTable.cpp +40 -71
  132. data/source/global/tdclatl/resource.h +0 -0
  133. data/source/global/tdclatl/tdclatl.idl +222 -28
  134. data/source/linux/tchar.h +100 -96
  135. data/transactd.gemspec +2 -2
  136. metadata +13 -11
  137. data/BUILD_UNIX-JA.md +0 -161
  138. data/BUILD_WIN-JA.md +0 -326
  139. data/README_ORMSRCGEN-JA.md +0 -115
  140. data/README_ORMSRCGEN.md +0 -118
  141. data/RELEASE_NOTE-JA.md +0 -356
  142. data/RELEASE_NOTE.md +0 -360
  143. data/bin/common/tdclc_32_2_4.dll +0 -0
  144. data/bin/common/tdclc_64_2_4.dll +0 -0
  145. data/source/bzs/test/trdclengn/test_blob.cpp +0 -375
@@ -42,19 +42,14 @@ describe Transactd, 'datetime' do
42
42
  it 'get BtrTime' do
43
43
  i_nowtime = Transactd::getNowTime() # get now time as integer
44
44
  s_i_nowtime = Transactd::btrttoa(i_nowtime)
45
- s_i_nowtime2 = Transactd::btrttoa(i_nowtime, true)
46
45
  #p i_nowtime
47
46
  #p s_i_nowtime + ' ' + s_i_nowtime.encoding.to_s
48
- #p s_i_nowtime2 + ' ' + s_i_nowtime2.encoding.to_s
49
47
  nowtime = Transactd::BtrTime.new()
50
48
  nowtime.i = i_nowtime # get now time as BtrTime
51
49
  s_nowtime = Transactd::btrttoa(nowtime)
52
- s_nowtime2 = Transactd::btrttoa(nowtime, true)
53
50
  #p nowtime
54
51
  #p s_nowtime + ' ' + s_nowtime.encoding.to_s
55
- #p s_nowtime2 + ' ' + s_nowtime2.encoding.to_s
56
52
  expect(s_i_nowtime).to eq s_nowtime
57
- expect(s_i_nowtime2).to eq s_nowtime2
58
53
  end
59
54
 
60
55
  it 'get BtrDateTime' do
@@ -21,6 +21,8 @@
21
21
  require 'transactd'
22
22
  require 'thwait'
23
23
 
24
+ Transactd::setRecordValueMode(Transactd::RECORD_KEYVALUE_FIELDVALUE)
25
+
24
26
  def getEnv(valuename)
25
27
  return ENV[valuename] if ENV[valuename] != nil
26
28
  return ''
@@ -23,6 +23,8 @@ require 'transactd'
23
23
  require 'rbconfig'
24
24
  IS_WINDOWS = (RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)
25
25
 
26
+ Transactd::setRecordValueMode(Transactd::RECORD_KEYVALUE_FIELDVALUE)
27
+
26
28
  def getEnv(valuename)
27
29
  return ENV[valuename] if ENV[valuename] != nil
28
30
  return ''
@@ -116,11 +118,11 @@ def testCreateTable(db)
116
118
  #test padChar
117
119
  fd.type = Transactd::Ft_string
118
120
  fd.setPadCharSettings(true, false)
119
- expect(fd.usePadChar()).to eq true;
120
- expect(fd.trimPadChar()).to eq false;
121
+ expect(fd.isUsePadChar()).to eq true;
122
+ expect(fd.isTrimPadChar()).to eq false;
121
123
  fd.setPadCharSettings(false, true)
122
- expect(fd.usePadChar()).to eq false;
123
- expect(fd.trimPadChar()).to eq true;
124
+ expect(fd.isUsePadChar()).to eq false;
125
+ expect(fd.isTrimPadChar()).to eq true;
124
126
 
125
127
  fd.type = Transactd::Ft_zstring
126
128
  dbdef.updateTableDef(1)
@@ -224,9 +226,10 @@ def testVersion()
224
226
  expect(client_ver.minorVersion.to_s).to eq Transactd::CPP_INTERFACE_VER_MINOR.to_s
225
227
  expect(client_ver.type.chr).to eq 'N'
226
228
  my5x = (server_ver.majorVersion == 5) && (server_ver.minorVersion >= 5)
227
- maria10 = (server_ver.majorVersion == 10) && (server_ver.minorVersion == 0)
229
+ maria10 = (server_ver.majorVersion == 10) && (server_ver.minorVersion <= 1)
228
230
  expect(my5x || maria10).to be true
229
- expect(server_ver.type.chr).to eq 'M'
231
+ tmp = (server_ver.type.chr == 'M') || (server_ver.type.chr == 'A')
232
+ expect(tmp).to be true
230
233
  expect(engine_ver.majorVersion.to_s).to eq Transactd::TRANSACTD_VER_MAJOR.to_s
231
234
  expect(engine_ver.minorVersion.to_s).to eq Transactd::TRANSACTD_VER_MINOR.to_s
232
235
  expect(engine_ver.type.chr).to eq 'T'
@@ -1875,7 +1878,7 @@ def testLogin()
1875
1878
  # invalid database name
1876
1879
  testDropDatabase(db)
1877
1880
  db.disconnect()
1878
- expect(db.stat()).to eq 0
1881
+ expect(db.stat()).to eq 1
1879
1882
  db.connect(URL_DB)
1880
1883
  expect(db.stat()).to eq (Transactd::ERROR_NO_DATABASE)
1881
1884
  db.disconnect()
@@ -1888,7 +1891,7 @@ def isUtf16leSupport(db)
1888
1891
  vv = Transactd::BtrVersions.new()
1889
1892
  db.getBtrVersion(vv)
1890
1893
  server_ver = vv.version(1)
1891
- if ('M' == server_ver.type.chr)
1894
+ if ('M' == server_ver.type.chr || 'A' == server_ver.type.chr)
1892
1895
  if (server_ver.majorVersion <= 4)
1893
1896
  return false
1894
1897
  elsif (server_ver.majorVersion == 5)
@@ -2368,6 +2371,22 @@ def testFilterVar()
2368
2371
  db.close()
2369
2372
  end
2370
2373
 
2374
+ def varLenBytes(fd)
2375
+ if ((fd.type >= Transactd::Ft_myvarchar && fd.type <= Transactd::Ft_mywvarbinary) || fd.type == Transactd::Ft_lstring)
2376
+ return (fd.len < 256) ? 1 : 2
2377
+ elsif (fd.type == Transactd::Ft_lvar)
2378
+ return 2
2379
+ end
2380
+ return 0
2381
+ end
2382
+
2383
+ def blobLenBytes(fd)
2384
+ if (fd.type == Transactd::Ft_myblob || fd.type == Transactd::Ft_mytext)
2385
+ return fd.len - 8
2386
+ end
2387
+ return 0
2388
+ end
2389
+
2371
2390
  def testCreateTableStringFilter(db, id, name, type, type2)
2372
2391
  # create table
2373
2392
  dbdef = db.dbDef()
@@ -2390,11 +2409,12 @@ def testCreateTableStringFilter(db, id, name, type, type2)
2390
2409
  fd.setName('name')
2391
2410
  fd.type = type
2392
2411
  fd.len = 44
2393
- if (fd.varLenBytes() != 0)
2394
- fd.len = fd.varLenBytes() + 44
2412
+ vlen = varLenBytes(fd)
2413
+ if (vlen != 0)
2414
+ fd.len = vlen + 44
2395
2415
  fd.keylen = fd.len
2396
2416
  end
2397
- if (fd.blobLenBytes() != 0)
2417
+ if (blobLenBytes(fd) != 0)
2398
2418
  fd.len = 12 # 8+4
2399
2419
  end
2400
2420
  fd.keylen = fd.len
@@ -2404,11 +2424,12 @@ def testCreateTableStringFilter(db, id, name, type, type2)
2404
2424
  fd.setName('namew')
2405
2425
  fd.type = type2
2406
2426
  fd.len = 44
2407
- if (fd.varLenBytes() != 0)
2408
- fd.len = fd.varLenBytes() + 44
2427
+ vlen = varLenBytes(fd)
2428
+ if (vlen != 0)
2429
+ fd.len = vlen + 44
2409
2430
  fd.keylen = fd.len
2410
2431
  end
2411
- if (fd.blobLenBytes() != 0)
2432
+ if (blobLenBytes(fd) != 0)
2412
2433
  fd.len = 12 # 8+4
2413
2434
  end
2414
2435
  fd.keylen = fd.len
@@ -3287,10 +3308,10 @@ def testServerPrepareJoin()
3287
3308
  rs = atu.keyValue(1).read(stmt1, 15000)
3288
3309
  ate.outerJoin(rs, stmt2, 'id')
3289
3310
  expect(rs.size()).to eq 15000
3311
+ expect(rs[NO_RECORD_ID - 1].isInvalidRecord()).to eq true
3290
3312
  atg.outerJoin(rs, stmt3, 'group')
3291
3313
  expect(rs.size()).to eq 15000
3292
3314
 
3293
- expect(rs[NO_RECORD_ID - 1].isInvalidRecord()).to eq true
3294
3315
  expect(rs[NO_RECORD_ID]['comment']).to eq "#{NO_RECORD_ID + 1} comment"
3295
3316
  expect(rs[NO_RECORD_ID]['blob']).to eq "#{NO_RECORD_ID + 1} blob"
3296
3317
 
@@ -3302,13 +3323,15 @@ def testServerPrepareJoin()
3302
3323
  ate.outerJoin(rs, stmt2, 'id')
3303
3324
  expect(rs.size()).to eq 15000
3304
3325
  expect(rs[NO_RECORD_ID - 1].isInvalidRecord()).to eq true
3326
+ expect(rs[NO_RECORD_ID - 1].getField('comment').isNull()).to eq true
3305
3327
  expect(rs[NO_RECORD_ID]['comment']).to eq "#{NO_RECORD_ID + 1} comment"
3306
3328
  expect(rs[NO_RECORD_ID]['blob']).to eq "#{NO_RECORD_ID + 1} blob"
3307
3329
 
3308
3330
  # Test clone blob field
3309
3331
  rs2 = rs.clone()
3310
3332
  expect(rs2.size()).to eq 15000
3311
- expect(rs2[NO_RECORD_ID - 1].isInvalidRecord()).to eq true
3333
+ #expect(rs2[NO_RECORD_ID - 1].isInvalidRecord()).to eq true
3334
+ expect(rs2[NO_RECORD_ID - 1].getField('comment').isNull()).to eq true
3312
3335
  expect(rs2[NO_RECORD_ID]['comment']).to eq "#{NO_RECORD_ID + 1} comment"
3313
3336
  expect(rs2[NO_RECORD_ID]['blob']).to eq "#{NO_RECORD_ID + 1} blob"
3314
3337