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.
- checksums.yaml +4 -4
- data/CMakeLists.txt +37 -4
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/common/transactd_cl_common.cmake +0 -1
- data/build/common/transactd_common.cmake +26 -6
- data/build/swig/php/generate.cmake.in +58 -0
- data/build/swig/php/generate.cmd.in +41 -0
- data/build/swig/php/php.swg +155 -0
- data/build/swig/ruby/ruby.swg +38 -0
- data/build/swig/tdcl.i +133 -3
- data/build/tdclc/CMakeLists.txt +4 -1
- data/build/tdclc/tdclc_32.cbproj +1 -1
- data/build/tdclc/tdclc_64.cbproj +1 -1
- data/build/tdclcpp/CMakeLists.txt +1 -1
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +1 -4
- data/build/tdclcpp/tdclcpp_bcb_64.cbproj +0 -3
- data/build/tdclrb/CMakeLists.txt +1 -1
- data/build/tdclrb/GEM_VERSION +2 -2
- data/source/bzs/db/engine/mysql/IReadRecords.h +1 -1
- data/source/bzs/db/engine/mysql/bookmark.h +3 -3
- data/source/bzs/db/engine/mysql/database.cpp +95 -19
- data/source/bzs/db/engine/mysql/database.h +6 -6
- data/source/bzs/db/engine/mysql/mysqlInternal.h +43 -1
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +10 -8
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +1 -1
- data/source/bzs/db/protocol/tdap/btrDate.h +2 -2
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +15 -8
- data/source/bzs/db/protocol/tdap/client/dbDef.h +2 -2
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +4 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +0 -5
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +0 -4
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -484
- data/source/bzs/db/protocol/tdap/client/filter.h +696 -84
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +13 -3
- data/source/bzs/db/protocol/tdap/client/nsTable.h +12 -6
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +2 -1
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +1 -0
- data/source/bzs/db/protocol/tdap/client/table.cpp +519 -75
- data/source/bzs/db/protocol/tdap/client/table.h +49 -7
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +145 -124
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +39 -0
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +872 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +8 -8
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +7 -9
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +406 -195
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +64 -13
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +2 -1
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +35 -3
- data/source/bzs/db/protocol/tdap/tdapSchema.h +11 -3
- data/source/bzs/db/protocol/tdap/tdapcapi.h +63 -53
- data/source/bzs/env/crosscompile.h +8 -3
- data/source/bzs/example/connection_pool_c.cpp +1 -7
- data/source/bzs/example/useORM.cpp +585 -0
- data/source/bzs/rtl/exception.h +6 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +12 -7
- data/source/bzs/test/tdclphp/transactd_Test.php +1845 -0
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +325 -0
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +183 -0
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +212 -0
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +332 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +256 -1
- data/source/bzs/test/trdclengn/test_blob.cpp +327 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +485 -5
- data/source/global/tdclatl/QueryBase.cpp +231 -0
- data/source/global/tdclatl/QueryBase.h +96 -0
- data/source/global/tdclatl/Table.cpp +24 -0
- data/source/global/tdclatl/Table.h +2 -1
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/tdclatl.idl +88 -2
- metadata +16 -3
- data/bin/common/tdclc_32_1_1.dll +0 -0
- 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::
|
|
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
|
|
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
|
}
|