Skip to content

Commit 0700b88

Browse files
committed
Table transaction adds a field TxsHashFillField
1 parent 5557d0d commit 0700b88

3 files changed

Lines changed: 38 additions & 21 deletions

File tree

src/table.js

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ class Table extends Submit {
1919
this.exec = '';
2020
this.field = null;
2121
this.connect = ChainsqlAPI.connect;
22-
this.cache = [];
22+
this.cache = [];
23+
this.txsHashFillField = null;
2324
}
2425

2526
submit (cb) {
@@ -59,13 +60,18 @@ class Table extends Submit {
5960
}
6061
}
6162

62-
Table.prototype.insert = function(raw, field) {
63+
Table.prototype.insert = function(raw, autoField ,txsHashFillField) {
6364
if (!this.tab) throw chainsqlError('you must appoint the table name');
6465
if (this.exec !== '' && this.exec !== 'r_insert') throw chainsqlError('Object can not hava function insert');
6566
var that = this;
66-
if (field) {
67-
this.field = field;
67+
if (autoField) {
68+
this.field = autoField;
69+
}
70+
71+
if (txsHashFillField) {
72+
this.txsHashFillField = txsHashFillField;
6873
}
74+
6975
if (Object.prototype.toString.call(raw) === '[object Array]') {
7076
raw.forEach(function(item) {
7177
that.query.push(item);
@@ -90,7 +96,7 @@ Table.prototype.insert = function(raw, field) {
9096
}
9197
}
9298

93-
Table.prototype.update = function(raw,field) {
99+
Table.prototype.update = function(raw,field,txsHashFillField) {
94100
if (!this.tab) throw chainsqlError('you must appoint the table name');
95101
if (this.exec !== 'r_get') throw chainsqlError('Object can not hava function update');
96102
this.query.unshift(raw);
@@ -99,6 +105,10 @@ Table.prototype.update = function(raw,field) {
99105
this.field = field;
100106
}
101107

108+
if (txsHashFillField) {
109+
this.txsHashFillField = txsHashFillField;
110+
}
111+
102112
this.exec = 'r_update';
103113
if (this.transaction) {
104114
this.cache.push({
@@ -397,10 +407,18 @@ Table.prototype.prepareJson = function() {
397407
}],
398408
tsType: 'SQLStatement'
399409
};
400-
if ( (that.exec == 'r_insert' || that.exec == 'r_update') && that.field) {
401-
payment.autoFillField = convertStringToHex(that.field);
402-
}
410+
if ( (that.exec == 'r_insert' || that.exec == 'r_update') ) {
411+
412+
if(that.field){
413+
payment.autoFillField = convertStringToHex(that.field);
414+
}
403415

416+
if ( that.txsHashFillField) {
417+
payment.txsHashFillField = convertStringToHex(that.txsHashFillField);
418+
}
419+
420+
}
421+
404422
return new Promise(function (resolve, reject) {
405423
prepareTable(that, payment, resolve, reject);
406424
});

src/tablePayment.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ function createPaymentTransaction(paymentArgument) {
6161
AutoFillField:payment.autoFillField,
6262
Token:payment.token,
6363
StrictMode: payment.strictMode,
64-
OperationRule: payment.operationRule
64+
OperationRule: payment.operationRule,
65+
TxsHashFillField:payment.txsHashFillField,
6566
}
6667
return txJSON;
6768
}

test/test.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var issuer = {
2525
address: "znbWk4iuz2HL1e1Ux91TzYfFzJHGeYxBA4"
2626
}
2727

28-
var sTableName = "fasefa";
28+
var sTableName = "fasefa25";
2929
var sTableName2 = "b1";
3030
var sReName = "boy1234";
3131
var sTableName3 = "hijack12";
@@ -34,7 +34,7 @@ main();
3434

3535
async function main(){
3636
try {
37-
await c.connect('ws://127.0.0.1:6005');
37+
await c.connect('ws://127.0.0.1:7017');
3838
//await c.connect('ws://101.201.40.124:5006');
3939
console.log('连接成功');
4040

@@ -143,9 +143,9 @@ async function testChainsql(){
143143
// await testCreateTable();
144144

145145
// // //创建另一张表,用来测试rename,drop
146-
await testCreateTable1();
147-
// await testInsert();
148-
// await testUpdate();
146+
//await testCreateTable1();
147+
//await testInsert();
148+
await testUpdate();
149149
// await testDelete();
150150
// await testRename();
151151
// await testGet();
@@ -204,8 +204,8 @@ var testCreateTable = async function() {
204204
var testCreateTable1 = async function() {
205205
var raw = [
206206
{'field':'id','type':'int','length':11,'PK':1,'NN':1,'default':''},
207-
{'field':'name','type':'varchar','length':50,'default':null},
208-
{'field':'age','type':'int'}
207+
{'field':'name','type':'text','default':''},
208+
{'field':'txnField','type':'text'}
209209
];
210210
var option = {
211211
confidential: false
@@ -222,12 +222,10 @@ var testCreateTable1 = async function() {
222222
//重复插入的情况下报异常
223223
var testInsert = async function() {
224224
var raw = [
225-
{'id':1,'age': 333,'name':'hello'},
226-
{'id':2,'age': 444,'name':'sss'},
227-
{'id':3,'age': 555,'name':'rrr'}
225+
{'id':7}
228226
];
229227
try {
230-
var rs = await c.table(sTableName).insert(raw).submit({expect:'db_success'});
228+
var rs = await c.table(sTableName).insert(raw,"name","txnField").submit({expect:'db_success'});
231229
console.log("testInsert",rs);
232230
} catch (error) {
233231
console.error(error);
@@ -236,7 +234,7 @@ var testInsert = async function() {
236234

237235
var testUpdate = async function(){
238236
try {
239-
var rs = await c.table(sTableName).get({'id': 2}).update({'age':200}).submit({expect:'db_success'});
237+
var rs = await c.table(sTableName).get({'id': 7}).update({'name':"26"},"name","txnField").submit({expect:'db_success'});
240238
console.log("testUpdate",rs);
241239
} catch (error) {
242240
console.error(error);

0 commit comments

Comments
 (0)