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
@@ -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
|
@@ -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.
|
120
|
-
expect(fd.
|
121
|
+
expect(fd.isUsePadChar()).to eq true;
|
122
|
+
expect(fd.isTrimPadChar()).to eq false;
|
121
123
|
fd.setPadCharSettings(false, true)
|
122
|
-
expect(fd.
|
123
|
-
expect(fd.
|
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
|
229
|
+
maria10 = (server_ver.majorVersion == 10) && (server_ver.minorVersion <= 1)
|
228
230
|
expect(my5x || maria10).to be true
|
229
|
-
|
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
|
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
|
-
|
2394
|
-
|
2412
|
+
vlen = varLenBytes(fd)
|
2413
|
+
if (vlen != 0)
|
2414
|
+
fd.len = vlen + 44
|
2395
2415
|
fd.keylen = fd.len
|
2396
2416
|
end
|
2397
|
-
if (
|
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
|
-
|
2408
|
-
|
2427
|
+
vlen = varLenBytes(fd)
|
2428
|
+
if (vlen != 0)
|
2429
|
+
fd.len = vlen + 44
|
2409
2430
|
fd.keylen = fd.len
|
2410
2431
|
end
|
2411
|
-
if (
|
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
|
|