transactd 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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);