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.
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
@@ -46,14 +46,13 @@ enum eFieldQuery
46
46
  class DLLLIB dbdef : private nstable
47
47
  {
48
48
  friend class database;
49
- struct dbdimple* m_impl;
49
+ struct dbdimple* m_dimpl;
50
50
  dbdef(const dbdef&);
51
51
  dbdef& operator=(const dbdef&);
52
52
 
53
53
  bool isUsedField(short tableIndex, short deleteIndex);
54
54
  void renumberFieldNum(short tableIndex, short Index, short op);
55
55
  bool resizeAt(short tableIndex, bool key);
56
- bool resizeReadBuf(void);
57
56
  void moveById(short id);
58
57
  bool validLen(uchar_td FieldType, uint_td FieldLen);
59
58
  bool isPassKey(uchar_td FieldType);
@@ -62,10 +61,6 @@ class DLLLIB dbdef : private nstable
62
61
  void saveDDF(short tableIndex, short opration, bool forPsqlDdf = true);
63
62
  ushort_td getDDFNewTableIndex();
64
63
  ushort_td getDDFNewFieldIndex();
65
- int totalDefLength(short tableIndex);
66
- void setRecordLen(short tableIndex);
67
- void setCodePage(tabledef* rd);
68
-
69
64
  void doOpen(const _TCHAR* uri, char_td mode = 0,
70
65
  const _TCHAR* ownername = NULL);
71
66
  void doClose();
@@ -76,16 +71,19 @@ class DLLLIB dbdef : private nstable
76
71
  inline nstable* table() { return this; }
77
72
  inline fielddef_t_my& convert(fielddef_t_my& fd_my,
78
73
  const fielddef_t_pv& fd_pv);
79
- void tableDefCopy(tabledef* dest, tabledef* src, size_t size);
74
+ void tableDefCopy(tabledef* dest, const tabledef* src, size_t size);
80
75
 
81
76
  ~dbdef();
82
77
  dbdef(nsdatabase* pbe, short defType);
83
78
  void create(const _TCHAR* uri);
84
- void autoMakeSchema();
79
+ void autoMakeSchema(bool noUseNullkey);
85
80
  void setDefType(short defType);
86
- static keydef* getKeyDef(tabledef* p);
87
- static fielddef* getFieldDef(tabledef* p);
88
-
81
+ bool testTablePtr(tabledef* td);
82
+ tabledef* initReadAfter(short tableIndex, const tabledef* data, uint_td datalen);
83
+ void* getBufferPtr(uint_td& size);
84
+ bool setDefaultImage(short tableIndex, const uchar_td* p, ushort_td size);
85
+ bool addSchemaImage(const tabledef* p, ushort_td size, short& tableIndex);
86
+ void allocDatabuffer();
89
87
  public:
90
88
  using nstable::addref;
91
89
  using nstable::release;
@@ -109,23 +107,22 @@ public:
109
107
  void deleteTable(short tableIndex);
110
108
  void renumberTable(short oldIndex, short newIndex);
111
109
  short tableNumByName(const _TCHAR* tableName);
112
- ushort_td getRecordLen(short tableIndex);
113
-
114
110
  void getFileSpec(fileSpec* fs, short tableIndex);
115
111
  short findKeynumByFieldNum(short tableIndex, short index);
116
112
  short fieldNumByViewNum(short tableIndex, short index);
117
113
  short fieldNumByName(short tableIndex, const _TCHAR* name);
118
114
  void* allocRelateData(int size);
119
-
120
115
  uint_td fieldValidLength(eFieldQuery query, uchar_td fieldType);
121
116
  void pushBackup(short tableIndex);
122
117
  bool compAsBackup(short tableIndex);
123
118
  void popBackup(short tableIndex);
119
+ void synchronizeSeverSchema(short tableIndex);
124
120
 
125
121
  inline short_td tdapErr(HWND hWnd, _TCHAR* retbuf = NULL)
126
122
  {
127
123
  return nstable::tdapErr(hWnd, retbuf);
128
124
  }
125
+
129
126
  inline _TCHAR* statMsg(_TCHAR* retbuf)
130
127
  {
131
128
  nstable::tdapErr(0, retbuf);
@@ -134,9 +131,6 @@ public:
134
131
 
135
132
  void reopen(char_td mode = TD_OPEN_READONLY);
136
133
  using nstable::setStat;
137
- static ushort_td getFieldPosition(tabledef* tableDef, short fieldNum);
138
- static void cacheFieldPos(tabledef* tableDef);
139
-
140
134
  using nstable::mode;
141
135
  };
142
136
 
@@ -105,7 +105,7 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID lpReserved)
105
105
  {
106
106
  try
107
107
  {
108
- delete m_cons;
108
+ delete m_cons;
109
109
  }
110
110
  catch(...){}
111
111
  m_cons = NULL;
@@ -204,7 +204,7 @@ extern "C" PACKAGE_OSX short_td __STDCALL
204
204
  break;
205
205
  case TD_MOVE_BOOKMARK:
206
206
  case TD_MOVE_PER:
207
- client_t->req().paramMask = P_MASK_NOKEYBUF;
207
+ client_t->req().paramMask = P_MASK_NOKEYBUF;
208
208
  break;
209
209
  case TD_UNLOCK:
210
210
  case TD_CLOSETABLE:
@@ -216,7 +216,7 @@ extern "C" PACKAGE_OSX short_td __STDCALL
216
216
  case TD_REC_DELETE:
217
217
  case TD_CLEAR_OWNERNAME:
218
218
  case TD_AUTOMEKE_SCHEMA:
219
- client_t->req().paramMask = P_MASK_POSBLK;
219
+ client_t->req().paramMask = P_MASK_POSBLK | P_MASK_KEYNUM;
220
220
  break;
221
221
  case TD_END_TRANSACTION:
222
222
  case TD_BEGIN_TRANSACTION:
@@ -267,7 +267,16 @@ extern "C" PACKAGE_OSX short_td __STDCALL
267
267
  break;
268
268
  case TD_GET_PER:
269
269
  case TD_SET_OWNERNAME:
270
+ client_t->req().paramMask = P_MASK_ALL;
271
+ break;
270
272
  case TD_TABLE_INFO:
273
+ if (client_t->req().keyNum == ST_SUB_GETSQL_BY_TABLEDEF)
274
+ {
275
+ client_t->req().result = 0;
276
+ client_t->getSqlCreate();
277
+ client_t->cleanup();
278
+ return client_t->req().result;
279
+ }
271
280
  client_t->req().paramMask = P_MASK_ALL;
272
281
  break;
273
282
  case TD_BOOKMARK:
@@ -286,23 +295,46 @@ extern "C" PACKAGE_OSX short_td __STDCALL
286
295
  break;
287
296
  case TD_VERSION:
288
297
  {
289
- ushort_td datalen = *client_t->req().datalen;
298
+ if (!client_t->req().cid->con)
299
+ return ERROR_TD_NOT_CONNECTED;
300
+
301
+ ushort_td datalen = *(client_t->req().datalen);
302
+ btrVersion* v = (btrVersion*)(client_t->req().data);
303
+ const clsrv_ver* ver = client_t->ver();
290
304
  if (datalen >= sizeof(btrVersion))
291
305
  {
292
- btrVersion& v = (btrVersion&)*((char*)client_t->req().data);
293
- v.majorVersion = atoi(CPP_INTERFACE_VER_MAJOR);
294
- v.minorVersion = atoi(CPP_INTERFACE_VER_MINOR);
295
- v.type = 'N';
296
- client_t->req().paramMask = P_MASK_DATA | P_MASK_DATALEN;
306
+ v->majorVersion = atoi(CPP_INTERFACE_VER_MAJOR);
307
+ v->minorVersion = atoi(CPP_INTERFACE_VER_MINOR);
308
+ v->type = 'N';
309
+ client_t->req().result = 0;
297
310
  }
298
311
  else
299
312
  client_t->req().result = STATUS_BUFFERTOOSMALL;
300
- if (datalen < sizeof(btrVersion) * 2)
313
+ if (datalen >= sizeof(btrVersion) * 2)
301
314
  {
302
- client_t->cleanup();
303
- return 0;
315
+ ++v;
316
+ if (ver)
317
+ {
318
+ v->majorVersion = ver->srvMysqlMajor;
319
+ v->minorVersion = ver->srvMysqlMinor;
320
+ v->type = ver->srvMysqlType;
321
+ client_t->req().result = 0;
322
+ }else
323
+ memset(v, 0, sizeof(btrVersion));
304
324
  }
305
- break;
325
+ if (datalen >= sizeof(btrVersion) * 3)
326
+ {
327
+ ++v;
328
+ if (ver)
329
+ {
330
+ v->majorVersion = ver->srvMajor;
331
+ v->minorVersion = ver->srvMinor;
332
+ v->type = 'T';
333
+ }else
334
+ memset(v, 0, sizeof(btrVersion));
335
+ client_t->req().result = 0;
336
+ }
337
+ return client_t->req().result;
306
338
  }
307
339
  case TD_OPENTABLE:
308
340
  case TD_CREATETABLE:
@@ -360,6 +392,22 @@ extern "C" PACKAGE_OSX short_td __STDCALL
360
392
  case TD_ACL_RELOAD:
361
393
  client_t->req().paramMask = 0;
362
394
  break;
395
+ case TD_GET_SCHEMA:
396
+ if (client_t->isSupportFunction(TD_GET_SCHEMA))
397
+ client_t->req().paramMask = P_MASK_DATALEN | P_MASK_KEYBUF;
398
+ else
399
+ return STATUS_NOSUPPORT_OP;
400
+ break;
401
+ case TD_STORE_TEST:
402
+ client_t->req().paramMask = P_MASK_POSBLK | P_MASK_DATA | P_MASK_DATALEN | P_MASK_KEYNUM;
403
+ break;
404
+ case TD_SET_TIMESTAMP_MODE:
405
+ client_t->req().paramMask = P_MASK_POSBLK | P_MASK_KEYNUM;
406
+ break;
407
+ case TD_STOP_ENGINE:
408
+ return 0;
409
+ default:
410
+ return STATUS_NOSUPPORT_OP;
363
411
  }
364
412
  short_td ret = client_t->execute();
365
413
  client_t->cleanup();