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
@@ -104,6 +104,35 @@ static void mark_activeTable(void* ptr) {
104
104
  %}
105
105
 
106
106
 
107
+ /* ===============================================
108
+ record value mode
109
+ =============================================== */
110
+ %ignore g_fieldValueMode;
111
+ %ignore g_recordValueMode;
112
+ %inline %{
113
+ #define FIELDVALUEMODE_RETURNNULL 0
114
+ #define FIELDVALUEMODE_NORETURNNULL 1
115
+ #define RECORD_KEYVALUE_FIELDVALUE 0
116
+ #define RECORD_KEYVALUE_FIELDOBJECT 1
117
+
118
+ static short g_fieldValueMode = FIELDVALUEMODE_NORETURNNULL;
119
+ static short g_recordValueMode = RECORD_KEYVALUE_FIELDOBJECT;
120
+
121
+ short fieldValueMode() {
122
+ return g_fieldValueMode;
123
+ }
124
+ void setFieldValueMode(short mode) {
125
+ g_fieldValueMode = mode;
126
+ }
127
+ short recordValueMode() {
128
+ return g_recordValueMode;
129
+ }
130
+ void setRecordValueMode(short mode) {
131
+ g_recordValueMode = mode;
132
+ }
133
+ %}
134
+
135
+
107
136
  /* ===============================================
108
137
  ignore / rename functions
109
138
  =============================================== */
@@ -162,34 +191,51 @@ static void mark_activeTable(void* ptr) {
162
191
  %rename(getField) bzs::db::protocol::tdap::client::fieldsBase::operator[] (const _TCHAR* name) const;
163
192
  // typemap and expand for get field value.
164
193
  %typemap(argout) (short fieldsBase_getitem_index) {
165
- bzs::db::protocol::tdap::client::field f = arg1->operator[]($1);
166
- __int64 tmp_i64;
167
- double tmp_d;
168
- const _TCHAR* tmp_c_str;
169
- switch (f.type()) {
170
- case ft_integer:
171
- case ft_uinteger:
172
- case ft_autoinc:
173
- case ft_autoIncUnsigned:
174
- case ft_logical:
175
- case ft_bit:
176
- tmp_i64 = f.i64();
177
- $result = SWIG_From_long_SS_long(static_cast< long long >(tmp_i64));
178
- break;
179
- case ft_float:
180
- case ft_decimal:
181
- case ft_money:
182
- case ft_numeric:
183
- case ft_bfloat:
184
- case ft_numericsts:
185
- case ft_numericsa:
186
- case ft_currency:
187
- tmp_d = f.d();
188
- $result = SWIG_From_double(static_cast< double >(tmp_d));
189
- break;
190
- default:
191
- tmp_c_str = f.c_str();
192
- $result = rb_enc_str_new(tmp_c_str, strlen(tmp_c_str), rb_enc_find_from_codepage(CP_UTF8));
194
+ bzs::db::protocol::tdap::client::field f;
195
+ try {
196
+ f = arg1->operator[]($1);
197
+ } catch (bzs::rtl::exception& e) {
198
+ static VALUE bzs_rtl_error = rb_define_class("BZS_RTL_Error", rb_eStandardError);
199
+ rb_raise(bzs_rtl_error, (* bzs::rtl::getMsg(e)).c_str());
200
+ } catch (std::exception &e) {
201
+ static VALUE cpp_std_error = rb_define_class("CPP_STD_Error", rb_eStandardError);
202
+ rb_raise(cpp_std_error, e.what());
203
+ }
204
+ if (recordValueMode() == RECORD_KEYVALUE_FIELDVALUE) { // value mode
205
+ if (fieldValueMode() == FIELDVALUEMODE_RETURNNULL && f.isNull()) { // return null
206
+ $result = Qnil;
207
+ } else {
208
+ __int64 tmp_i64;
209
+ double tmp_d;
210
+ const _TCHAR* tmp_c_str;
211
+ switch (f.type()) {
212
+ case ft_integer:
213
+ case ft_uinteger:
214
+ case ft_autoinc:
215
+ case ft_autoIncUnsigned:
216
+ case ft_logical:
217
+ case ft_bit:
218
+ tmp_i64 = f.i64();
219
+ $result = SWIG_From_long_SS_long(static_cast< long long >(tmp_i64));
220
+ break;
221
+ case ft_float:
222
+ case ft_decimal:
223
+ case ft_money:
224
+ case ft_numeric:
225
+ case ft_bfloat:
226
+ case ft_numericsts:
227
+ case ft_numericsa:
228
+ case ft_currency:
229
+ tmp_d = f.d();
230
+ $result = SWIG_From_double(static_cast< double >(tmp_d));
231
+ break;
232
+ default:
233
+ tmp_c_str = f.c_str();
234
+ $result = rb_enc_str_new(tmp_c_str, strlen(tmp_c_str), rb_enc_find_from_codepage(CP_UTF8));
235
+ }
236
+ }
237
+ } else { // field object mode
238
+ $result = SWIG_NewPointerObj(new bzs::db::protocol::tdap::client::field(f), SWIGTYPE_p_bzs__db__protocol__tdap__client__field, SWIG_POINTER_OWN | 0 );
193
239
  }
194
240
  }
195
241
  %apply short fieldsBase_getitem_index { const _TCHAR* fieldsBase_getitem_index };
@@ -206,7 +252,18 @@ static void mark_activeTable(void* ptr) {
206
252
  %rename(__getitem__) bzs::db::protocol::tdap::client::sortFields::operator[];
207
253
 
208
254
  // * bzs/db/protocol/tdap/client/memRecord.h *
255
+ %ignore bzs::db::protocol::tdap::client::field::operator=(const char*);
256
+ %ignore bzs::db::protocol::tdap::client::field::operator=(const std::string&);
257
+ %ignore bzs::db::protocol::tdap::client::field::operator=(int);
258
+ %ignore bzs::db::protocol::tdap::client::field::operator=(float);
259
+ %rename(str) bzs::db::protocol::tdap::client::field::c_str;
260
+ %alias bzs::db::protocol::tdap::client::field::getBin "bin";
261
+ %rename(__setitem__) bzs::db::protocol::tdap::client::field::operator=(const _TCHAR*);
262
+ %rename(__setitem__) bzs::db::protocol::tdap::client::field::operator=(__int64);
263
+ %rename(__setitem__) bzs::db::protocol::tdap::client::field::operator=(double);
209
264
  %rename(__setitem__) bzs::db::protocol::tdap::client::field::setBin;
265
+ %alias bzs::db::protocol::tdap::client::field::setBin "setBin";
266
+ %alias bzs::db::protocol::tdap::client::field::setBin "setValue";
210
267
  %extend bzs::db::protocol::tdap::client::writableRecord {
211
268
  void __setitem__(short writableRecord_setitem_index, const _TCHAR* v) {
212
269
  self->operator[](writableRecord_setitem_index) = v;