transactd 1.1.2 → 1.2.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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/CMakeLists.txt +37 -4
  3. data/bin/common/tdclc_32_1_2.dll +0 -0
  4. data/bin/common/tdclc_64_1_2.dll +0 -0
  5. data/build/common/transactd_cl_common.cmake +0 -1
  6. data/build/common/transactd_common.cmake +26 -6
  7. data/build/swig/php/generate.cmake.in +58 -0
  8. data/build/swig/php/generate.cmd.in +41 -0
  9. data/build/swig/php/php.swg +155 -0
  10. data/build/swig/ruby/ruby.swg +38 -0
  11. data/build/swig/tdcl.i +133 -3
  12. data/build/tdclc/CMakeLists.txt +4 -1
  13. data/build/tdclc/tdclc_32.cbproj +1 -1
  14. data/build/tdclc/tdclc_64.cbproj +1 -1
  15. data/build/tdclcpp/CMakeLists.txt +1 -1
  16. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +1 -4
  17. data/build/tdclcpp/tdclcpp_bcb_64.cbproj +0 -3
  18. data/build/tdclrb/CMakeLists.txt +1 -1
  19. data/build/tdclrb/GEM_VERSION +2 -2
  20. data/source/bzs/db/engine/mysql/IReadRecords.h +1 -1
  21. data/source/bzs/db/engine/mysql/bookmark.h +3 -3
  22. data/source/bzs/db/engine/mysql/database.cpp +95 -19
  23. data/source/bzs/db/engine/mysql/database.h +6 -6
  24. data/source/bzs/db/engine/mysql/mysqlInternal.h +43 -1
  25. data/source/bzs/db/engine/mysql/mysqlThd.cpp +10 -8
  26. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +1 -1
  27. data/source/bzs/db/protocol/tdap/btrDate.h +2 -2
  28. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +15 -8
  29. data/source/bzs/db/protocol/tdap/client/dbDef.h +2 -2
  30. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +4 -0
  31. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +0 -5
  32. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +0 -4
  33. data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -484
  34. data/source/bzs/db/protocol/tdap/client/filter.h +696 -84
  35. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +13 -3
  36. data/source/bzs/db/protocol/tdap/client/nsTable.h +12 -6
  37. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +2 -1
  38. data/source/bzs/db/protocol/tdap/client/stringConverter.h +1 -0
  39. data/source/bzs/db/protocol/tdap/client/table.cpp +519 -75
  40. data/source/bzs/db/protocol/tdap/client/table.h +49 -7
  41. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +145 -124
  42. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +39 -0
  43. data/source/bzs/db/protocol/tdap/client/trdormapi.h +872 -0
  44. data/source/bzs/db/protocol/tdap/myDateTime.cpp +8 -8
  45. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +7 -9
  46. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +406 -195
  47. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +64 -13
  48. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +2 -1
  49. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +35 -3
  50. data/source/bzs/db/protocol/tdap/tdapSchema.h +11 -3
  51. data/source/bzs/db/protocol/tdap/tdapcapi.h +63 -53
  52. data/source/bzs/env/crosscompile.h +8 -3
  53. data/source/bzs/example/connection_pool_c.cpp +1 -7
  54. data/source/bzs/example/useORM.cpp +585 -0
  55. data/source/bzs/rtl/exception.h +6 -0
  56. data/source/bzs/test/tdclatl/bench_tdclatl.js +12 -7
  57. data/source/bzs/test/tdclphp/transactd_Test.php +1845 -0
  58. data/source/bzs/test/tdclphp/transactd_blob_Test.php +325 -0
  59. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +183 -0
  60. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +212 -0
  61. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +332 -0
  62. data/source/bzs/test/tdclrb/transactd_spec.rb +256 -1
  63. data/source/bzs/test/trdclengn/test_blob.cpp +327 -0
  64. data/source/bzs/test/trdclengn/test_trdclengn.cpp +485 -5
  65. data/source/global/tdclatl/QueryBase.cpp +231 -0
  66. data/source/global/tdclatl/QueryBase.h +96 -0
  67. data/source/global/tdclatl/Table.cpp +24 -0
  68. data/source/global/tdclatl/Table.h +2 -1
  69. data/source/global/tdclatl/resource.h +0 -0
  70. data/source/global/tdclatl/tdclatl.idl +88 -2
  71. metadata +16 -3
  72. data/bin/common/tdclc_32_1_1.dll +0 -0
  73. data/bin/common/tdclc_64_1_1.dll +0 -0
@@ -521,7 +521,7 @@ ushort_td nstable::doCommitBulkInsert(bool autoCommit)
521
521
  return count;
522
522
  }
523
523
 
524
- void nstable::abortBulkInsert()
524
+ void nstable::doAbortBulkInsert()
525
525
  {
526
526
  delete m_impl->bulkIns;
527
527
  m_impl->bulkIns = NULL;
@@ -684,7 +684,7 @@ void nstable::stats(void* dataBuf, uint_td len, bool estimate)
684
684
  m_keynum = svm_keynum;
685
685
  }
686
686
 
687
- uint_td nstable::doRecordCount(bool estimate, bool fromCurrent)
687
+ uint_td nstable::doRecordCount(bool estimate, bool fromCurrent, eFindType /*direction*/)
688
688
  {
689
689
  fileSpec *fs;
690
690
  uint_td Count;
@@ -791,7 +791,7 @@ short_td nstable::tdapErr(HWND hWnd, short_td status, const _TCHAR* TableName, _
791
791
 
792
792
  #pragma warning(disable:4996)
793
793
  if (retbuf)
794
- _stprintf(retbuf, _T("table_name:%s %s"), TableName, buf);
794
+ _stprintf(retbuf, _T("table_name:%s \n%s"), TableName, buf);
795
795
  #pragma warning(default:4996)
796
796
 
797
797
  if ((int)hWnd <= 0) return errorCode;
@@ -815,6 +815,16 @@ void nstable::throwError(const _TCHAR* caption, short statusCode)
815
815
  THROW_BZS_ERROR_WITH_CODEMSG(statusCode, tmp2);
816
816
  }
817
817
 
818
+ void nstable::throwError(const _TCHAR* caption, nstable* tb)
819
+ {
820
+ _TCHAR tmp[1024]={0x00};
821
+ nstable::tdapErr(0x00, tb->stat(), tb->uri(), tmp);
822
+ _TCHAR tmp2[1024]={0x00};
823
+ _stprintf_s(tmp2, 1024, _T("[%s]\n%s\n"),caption, tmp);
824
+ THROW_BZS_ERROR_WITH_CODEMSG(tb->stat(), tmp2);
825
+
826
+ }
827
+
818
828
  _TCHAR* nstable::getDirURI(const _TCHAR* path, _TCHAR* buf)
819
829
  {
820
830
  bool uri = false;
@@ -46,9 +46,12 @@ class bulkInsert;
46
46
  class AGRPACK nstable
47
47
  {
48
48
  friend class nsdatabase; // for destroy()
49
+ friend class filter;
49
50
  public:
50
51
  enum eUpdateType{changeCurrentCc,changeCurrentNcc,changeInKey};
52
+ enum eFindType{findForword, findBackForword};
51
53
  static const bool inkey = true;
54
+
52
55
  private:
53
56
  struct nstimpl* m_impl;
54
57
 
@@ -61,7 +64,6 @@ private:
61
64
 
62
65
  protected:
63
66
 
64
-
65
67
  ushort_td m_op;
66
68
  void* m_pdata;
67
69
  uint_td m_buflen;
@@ -105,20 +107,22 @@ protected:
105
107
  virtual void doOpen(const _TCHAR* name, char_td mode, const _TCHAR* ownername);
106
108
  virtual void doClose();
107
109
  virtual void doCreateIndex(bool specifyKeyNum);
108
- virtual uint_td doRecordCount(bool estimate, bool fromCurrent);
110
+ virtual uint_td doRecordCount(bool estimate, bool fromCurrent, eFindType direction);
109
111
  virtual short_td doBtrvErr(HWND hWnd, _TCHAR* retbuf);
110
112
  virtual ushort_td doCommitBulkInsert(bool autoCommit);
113
+ virtual void doAbortBulkInsert();
111
114
  inline void open(const _TCHAR* uri, char_td mode = 0, const _TCHAR* ownerName = NULL) {
112
115
  doOpen(uri, mode, ownerName);}
113
116
 
114
- /*
117
+ /*
115
118
  This method is ignore refarence count of nstable and force delete.
116
119
  Use in nsdatabase::reset()
117
120
  */
118
121
  void destroy();
119
122
  void setShared();
120
-
123
+
121
124
  public:
125
+
122
126
  explicit nstable(nsdatabase *pbe);
123
127
  void addref(void);
124
128
  void release();
@@ -148,11 +152,12 @@ public:
148
152
  inline ushort_td insert(bool ncc = false) {return doInsert(ncc);};
149
153
  inline void createIndex(bool specifyKeyNum = false) {doCreateIndex(specifyKeyNum);}
150
154
  void dropIndex(bool norenumber = false);
151
- inline uint_td recordCount(bool estimate = true, bool fromCurrent = false) {return doRecordCount(estimate, fromCurrent);}
155
+ inline uint_td recordCount(bool estimate = true, bool fromCurrent = false, eFindType direction = findForword)
156
+ {return doRecordCount(estimate, fromCurrent, direction);}
152
157
  inline short_td tdapErr(HWND hWnd, _TCHAR* retbuf = NULL) {return doBtrvErr(hWnd, retbuf);}
153
158
 
154
159
  void beginBulkInsert(int maxBuflen);
155
- void abortBulkInsert();
160
+ void abortBulkInsert(){doAbortBulkInsert();}
156
161
  inline ushort_td commitBulkInsert(bool autoCommit = false) {
157
162
  return doCommitBulkInsert(autoCommit);}
158
163
  void tdap(ushort_td op);
@@ -183,6 +188,7 @@ public:
183
188
  static short_td tdapErr(HWND hWnd, short_td status, const _TCHAR* tableName = NULL,
184
189
  _TCHAR* retbuf = NULL);
185
190
  static void throwError(const _TCHAR* caption, short statusCode);
191
+ static void throwError(const _TCHAR* caption, nstable* tb);
186
192
  static _TCHAR* getDirURI(const _TCHAR* uri, _TCHAR* retbuf);
187
193
  static bool existsFile(const _TCHAR* filename);
188
194
  static bool test(nstable* p);
@@ -96,6 +96,7 @@ const char* getFieldTypeName(uchar_td fieldType, int size, bool nobinary,
96
96
  if (size==4)return "INT";
97
97
  if (size==8)return "BIGINT";
98
98
  case ft_uinteger:
99
+ case ft_autoIncUnsigned:
99
100
  if (size==1)return "TINYINT UNSIGNED";
100
101
  if (size==2)return "SMALLINT UNSIGNED";
101
102
  if (size==4)return "INT UNSIGNED";
@@ -257,7 +258,7 @@ std::string getFiledList(tabledef* table, std::vector<std::string>& fdl)
257
258
  s += " NULL";
258
259
  else
259
260
  s += " NOT NULL";
260
- if (fd.type == ft_autoinc)
261
+ if ((fd.type == ft_autoinc)||(fd.type == ft_autoIncUnsigned))
261
262
  s += " AUTO_INCREMENT";
262
263
  s += ",";
263
264
  }
@@ -586,6 +586,7 @@ char* blobStore(char* ptr, const T* data, fielddef& fd, stringConverter* cv)
586
586
  maxlen = std::min<size_t>(maxlen, len + 1);
587
587
  p = new char[maxlen];
588
588
  memcpy_t(p, data, len);
589
+ p[len] = 0x00;
589
590
  }
590
591
  }
591
592
  memset(ptr, 0, fd.len);