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
@@ -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();