yjp 3 сар өмнө
parent
commit
ef593252e3

+ 4 - 4
client/client.go

@@ -36,10 +36,10 @@ type Client interface {
 	DeleteBatch(request *DeleteBatchRequest) (string, error)
 	Update(request *UpdateRequest) (string, error)
 	Replay(request *ReplayRequest) (string, error)
-	QueryByWhereAndOrderBy(request *QueryByWhereAndOrderByRequest) (string, *TableRows, int64, error)
-	CommonQuery(request *CommonQueryRequest) (string, *TableRows, int64, error)
-	QueryOnlyByWhereAndOrderBy(request *QueryByWhereAndOrderByRequest) (string, *TableRows, error)
-	CommonQueryOnly(request *CommonQueryRequest) (string, *TableRows, error)
+	QueryByWhereAndOrderBy(request *QueryByWhereAndOrderByRequest) (string, []TableRow, int64, error)
+	CommonQuery(request *CommonQueryRequest) (string, []TableRow, int64, error)
+	QueryOnlyByWhereAndOrderBy(request *QueryByWhereAndOrderByRequest) (string, []TableRow, error)
+	CommonQueryOnly(request *CommonQueryRequest) (string, []TableRow, error)
 	QueryByKeys(request *QueryByKeysRequest) (string, *TableRow, error)
 	CountWhere(request *CountWhereRequest) (string, int64, error)
 	CommonCount(request *CommonCountRequest) (string, int64, error)

+ 9 - 0
client/condition.go

@@ -0,0 +1,9 @@
+package client
+
+type Condition struct {
+	queryAndArgsPars map[string][]any
+}
+
+func NewCondition() {
+
+}

+ 5 - 5
client/table_row.go

@@ -287,18 +287,18 @@ func (tableRow *TableRow) FromDSPInfoData(infoData *response.InfoData) error {
 	return nil
 }
 
-type TableRows []TableRow
+func FromDSPInfosData(infosData []*response.InfoData) ([]TableRow, error) {
+	tableRows := make([]TableRow, 0)
 
-func (tableRows *TableRows) FromDSPInfosData(infosData []*response.InfoData) error {
 	for _, infoData := range infosData {
 		tableRow := NewTableRow()
 		err := tableRow.FromDSPInfoData(infoData)
 		if err != nil {
-			return err
+			return nil, err
 		}
 
-		*tableRows = append(*tableRows, *tableRow)
+		tableRows = append(tableRows, *tableRow)
 	}
 
-	return nil
+	return tableRows, nil
 }

+ 8 - 12
dpsv1/client.go

@@ -277,7 +277,7 @@ func (c *Client) Replay(req *client.ReplayRequest) (string, error) {
 	return reply.Statement, nil
 }
 
-func (c *Client) QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, *client.TableRows, int64, error) {
+func (c *Client) QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, []client.TableRow, int64, error) {
 	selectJsonBytes, err := json.Marshal(req.Select)
 	if err != nil {
 		return "", nil, 0, err
@@ -302,8 +302,7 @@ func (c *Client) QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByReques
 		return "", nil, 0, err
 	}
 
-	tableRows := new(client.TableRows)
-	err = tableRows.FromDSPInfosData(reply.Infos)
+	tableRows, err := client.FromDSPInfosData(reply.Infos)
 	if err != nil {
 		return "", nil, 0, err
 	}
@@ -311,7 +310,7 @@ func (c *Client) QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByReques
 	return reply.Statement, tableRows, reply.TotalCount, nil
 }
 
-func (c *Client) CommonQuery(req *client.CommonQueryRequest) (string, *client.TableRows, int64, error) {
+func (c *Client) CommonQuery(req *client.CommonQueryRequest) (string, []client.TableRow, int64, error) {
 	selectJsonBytes, err := json.Marshal(req.Select)
 	if err != nil {
 		return "", nil, 0, err
@@ -355,8 +354,7 @@ func (c *Client) CommonQuery(req *client.CommonQueryRequest) (string, *client.Ta
 		return "", nil, 0, err
 	}
 
-	tableRows := new(client.TableRows)
-	err = tableRows.FromDSPInfosData(reply.Infos)
+	tableRows, err := client.FromDSPInfosData(reply.Infos)
 	if err != nil {
 		return "", nil, 0, err
 	}
@@ -364,7 +362,7 @@ func (c *Client) CommonQuery(req *client.CommonQueryRequest) (string, *client.Ta
 	return reply.Statement, tableRows, reply.TotalCount, nil
 }
 
-func (c *Client) QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, *client.TableRows, error) {
+func (c *Client) QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (string, []client.TableRow, error) {
 	selectJsonBytes, err := json.Marshal(req.Select)
 	if err != nil {
 		return "", nil, err
@@ -389,8 +387,7 @@ func (c *Client) QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRe
 		return "", nil, err
 	}
 
-	tableRows := new(client.TableRows)
-	err = tableRows.FromDSPInfosData(reply.Infos)
+	tableRows, err := client.FromDSPInfosData(reply.Infos)
 	if err != nil {
 		return "", nil, err
 	}
@@ -398,7 +395,7 @@ func (c *Client) QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRe
 	return reply.Statement, tableRows, nil
 }
 
-func (c *Client) CommonQueryOnly(req *client.CommonQueryRequest) (string, *client.TableRows, error) {
+func (c *Client) CommonQueryOnly(req *client.CommonQueryRequest) (string, []client.TableRow, error) {
 	selectJsonBytes, err := json.Marshal(req.Select)
 	if err != nil {
 		return "", nil, err
@@ -442,8 +439,7 @@ func (c *Client) CommonQueryOnly(req *client.CommonQueryRequest) (string, *clien
 		return "", nil, err
 	}
 
-	tableRows := new(client.TableRows)
-	err = tableRows.FromDSPInfosData(reply.Infos)
+	tableRows, err := client.FromDSPInfosData(reply.Infos)
 	if err != nil {
 		return "", nil, err
 	}

+ 12 - 12
instance_query.go

@@ -5,48 +5,48 @@ import (
 	"git.sxidc.com/service-supports/fslog"
 )
 
-func QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (*client.TableRows, int64, error) {
-	statement, dataMaps, totalCount, err := dpsClient.QueryByWhereAndOrderBy(req)
+func QueryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) ([]client.TableRow, int64, error) {
+	statement, tableRows, totalCount, err := dpsClient.QueryByWhereAndOrderBy(req)
 	if err != nil {
 		return nil, 0, err
 	}
 
 	fslog.Info(statement)
 
-	return dataMaps, totalCount, nil
+	return tableRows, totalCount, nil
 }
 
-func CommonQuery(req *client.CommonQueryRequest) (*client.TableRows, int64, error) {
-	statement, dataMaps, totalCount, err := dpsClient.CommonQuery(req)
+func CommonQuery(req *client.CommonQueryRequest) ([]client.TableRow, int64, error) {
+	statement, tableRows, totalCount, err := dpsClient.CommonQuery(req)
 	if err != nil {
 		return nil, 0, err
 	}
 
 	fslog.Info(statement)
 
-	return dataMaps, totalCount, nil
+	return tableRows, totalCount, nil
 }
 
-func QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) (*client.TableRows, error) {
-	statement, dataMaps, err := dpsClient.QueryOnlyByWhereAndOrderBy(req)
+func QueryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest) ([]client.TableRow, error) {
+	statement, tableRows, err := dpsClient.QueryOnlyByWhereAndOrderBy(req)
 	if err != nil {
 		return nil, err
 	}
 
 	fslog.Info(statement)
 
-	return dataMaps, nil
+	return tableRows, nil
 }
 
-func CommonQueryOnly(req *client.CommonQueryRequest) (*client.TableRows, error) {
-	statement, dataMaps, err := dpsClient.CommonQueryOnly(req)
+func CommonQueryOnly(req *client.CommonQueryRequest) ([]client.TableRow, error) {
+	statement, tableRows, err := dpsClient.CommonQueryOnly(req)
 	if err != nil {
 		return nil, err
 	}
 
 	fslog.Info(statement)
 
-	return dataMaps, nil
+	return tableRows, nil
 }
 
 func QueryByKeys(req *client.QueryByKeysRequest) (*client.TableRow, error) {

+ 192 - 160
test/instance/instance_test.go

@@ -54,7 +54,7 @@ func TestTransaction(t *testing.T) {
 	newTableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
 
 	var count int64
-	resultMap := make(map[string]any)
+	resultTableRow := client.NewTableRow()
 
 	newToolKit(t).
 		autoMigrate([]client.AutoMigrateItem{
@@ -69,12 +69,11 @@ func TestTransaction(t *testing.T) {
 				TablePrefixWithSchema: tablePrefix,
 				Version:               "v1",
 				KeyColumns:            []string{"id"},
-				TableRow: map[string]any{
-					"id":        id,
-					"name":      name,
-					"time":      now,
-					"table_num": tableNum,
-				},
+				TableRow: client.NewTableRow().
+					AddColumnValueString("id", id).
+					AddColumnValueString("name", name).
+					AddColumnValueTime("time", now).
+					AddColumnValueInt("table_num", tableNum),
 				UserID: "test",
 			})
 			if err != nil {
@@ -89,22 +88,21 @@ func TestTransaction(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id},
-		}, &resultMap).
-		assertEqual(id, resultMap["id"], "ID不一致").
-		assertEqual(name, resultMap["name"], "名称不一致").
-		assertEqual(now.Unix(), resultMap["time"].(time.Time).Unix(), "时间不一致").
-		assertEqual(uint64(tableNum), resultMap["table_num"], "表数量不一致").
+		}, resultTableRow).
+		assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
+		assertEqual(name, resultTableRow.ColumnValueString("name"), "名称不一致").
+		assertEqual(now.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
 		transaction(func(tx client.Transaction) error {
 			statement, err := tx.UpdateTx(&client.UpdateRequest{
 				TablePrefixWithSchema: tablePrefix,
 				Version:               "v1",
 				KeyValues:             map[string]string{"id": id},
-				NewTableRow: map[string]any{
-					"id":        id,
-					"name":      newName,
-					"time":      newNow,
-					"table_num": newTableNum,
-				},
+				NewTableRow: client.NewTableRow().
+					AddColumnValueString("id", id).
+					AddColumnValueString("name", newName).
+					AddColumnValueTime("time", newNow).
+					AddColumnValueInt("table_num", newTableNum),
 				UserID: "test",
 			})
 			if err != nil {
@@ -119,22 +117,21 @@ func TestTransaction(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id},
-		}, &resultMap).
-		assertEqual(id, resultMap["id"], "ID不一致").
-		assertEqual(newName, resultMap["name"], "名称不一致").
-		assertEqual(newNow.Unix(), resultMap["time"].(time.Time).Unix(), "时间不一致").
-		assertEqual(uint64(newTableNum), resultMap["table_num"], "表数量不一致").
+		}, resultTableRow).
+		assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
+		assertEqual(newName, resultTableRow.ColumnValueString("name"), "名称不一致").
+		assertEqual(newNow.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(newTableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
 		transaction(func(tx client.Transaction) error {
 			statement, err := tx.UpdateTx(&client.UpdateRequest{
 				TablePrefixWithSchema: tablePrefix,
 				Version:               "v1",
 				KeyValues:             map[string]string{"id": id},
-				NewTableRow: map[string]any{
-					"id":        id,
-					"name":      name,
-					"time":      now,
-					"table_num": tableNum,
-				},
+				NewTableRow: client.NewTableRow().
+					AddColumnValueString("id", id).
+					AddColumnValueString("name", name).
+					AddColumnValueTime("time", now).
+					AddColumnValueInt("table_num", tableNum),
 				UserID: "test",
 			})
 			if err != nil {
@@ -184,7 +181,7 @@ func TestTransactionBatch(t *testing.T) {
 	tableNum2 := rand.New(rand.NewSource(now2.Unix())).Intn(10)
 
 	var count int64
-	resultMap := make(map[string]any)
+	resultTableRow := client.NewTableRow()
 
 	newToolKit(t).
 		autoMigrate([]client.AutoMigrateItem{
@@ -201,19 +198,17 @@ func TestTransactionBatch(t *testing.T) {
 						TablePrefixWithSchema: tablePrefix,
 						Version:               "v1",
 						KeyColumns:            []string{"id"},
-						TableRows: []map[string]any{
-							{
-								"id":        id1,
-								"name":      name1,
-								"time":      now1,
-								"table_num": tableNum1,
-							},
-							{
-								"id":        id2,
-								"name":      name2,
-								"time":      now2,
-								"table_num": tableNum2,
-							},
+						TableRows: []*client.TableRow{
+							client.NewTableRow().
+								AddColumnValueString("id", id1).
+								AddColumnValueString("name", name1).
+								AddColumnValueTime("time", now1).
+								AddColumnValueInt("table_num", tableNum1),
+							client.NewTableRow().
+								AddColumnValueString("id", id2).
+								AddColumnValueString("name", name2).
+								AddColumnValueTime("time", now2).
+								AddColumnValueInt("table_num", tableNum2),
 						},
 					},
 				},
@@ -230,20 +225,20 @@ func TestTransactionBatch(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id1},
-		}, &resultMap).
-		assertEqual(id1, resultMap["id"], "ID不一致").
-		assertEqual(name1, resultMap["name"], "名称不一致").
-		assertEqual(now1.Unix(), resultMap["time"].(time.Time).Unix(), "时间不一致").
-		assertEqual(uint64(tableNum1), resultMap["table_num"], "表数量不一致").
+		}, resultTableRow).
+		assertEqual(id1, resultTableRow.ColumnValueString("id"), "ID不一致").
+		assertEqual(name1, resultTableRow.ColumnValueString("name"), "名称不一致").
+		assertEqual(now1.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum1, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
 		queryByKeys(&client.QueryByKeysRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id2},
-		}, &resultMap).
-		assertEqual(id2, resultMap["id"], "ID不一致").
-		assertEqual(name2, resultMap["name"], "名称不一致").
-		assertEqual(now2.Unix(), resultMap["time"].(time.Time).Unix(), "时间不一致").
-		assertEqual(uint64(tableNum2), resultMap["table_num"], "表数量不一致").
+		}, resultTableRow).
+		assertEqual(id2, resultTableRow.ColumnValueString("id"), "ID不一致").
+		assertEqual(name2, resultTableRow.ColumnValueString("name"), "名称不一致").
+		assertEqual(now2.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum2, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
 		transaction(func(tx client.Transaction) error {
 			statement, err := tx.DeleteBatchTx(&client.DeleteBatchRequest{
 				Items: []client.DeleteTableRowItem{
@@ -295,7 +290,8 @@ func TestInsert(t *testing.T) {
 	now := time.Now().Local()
 	tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
 
-	resultMap := make(map[string]any)
+	resultTableRow := client.NewTableRow()
+	var exist bool
 
 	newToolKit(t).
 		autoMigrate([]client.AutoMigrateItem{
@@ -309,23 +305,38 @@ func TestInsert(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyColumns:            []string{"id"},
-			TableRow: map[string]any{
-				"id":        id,
-				"name":      name,
-				"time":      now,
-				"table_num": tableNum,
-			},
+			TableRow: client.NewTableRow().
+				AddColumnValueString("id", id).
+				AddColumnValueString("name", name).
+				AddColumnValueTime("time", now).
+				AddColumnValueInt("table_num", tableNum),
 			UserID: "test",
 		}).
 		queryByKeys(&client.QueryByKeysRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id},
-		}, &resultMap).
-		assertEqual(id, resultMap["id"], "ID不一致").
-		assertEqual(name, resultMap["name"], "名称不一致").
-		assertEqual(now.Unix(), resultMap["time"].(time.Time).Local().Unix(), "时间不一致").
-		assertEqual(uint64(tableNum), resultMap["table_num"], "表数量不一致")
+		}, resultTableRow).
+		assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
+		assertEqual(name, resultTableRow.ColumnValueString("name"), "名称不一致").
+		assertEqual(now.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致").
+		checkExistWhere(&client.CountWhereRequest{
+			TablePrefixWithSchema: tablePrefix,
+			Version:               "v1",
+			Where: map[string][]any{
+				"id = ?": {id},
+			},
+		}, &exist).
+		assertEqual(true, exist, "存在状态不一致").
+		commonCheckExist(&client.CommonCountRequest{
+			TablePrefixWithSchema: tablePrefix,
+			Version:               "v1",
+			Where: map[string][]any{
+				"id = ? AND name = ? AND table_num = ?": {id, name, tableNum},
+			},
+		}, &exist).
+		assertEqual(true, exist, "存在状态不一致")
 }
 
 func TestInsertBatch(t *testing.T) {
@@ -344,7 +355,7 @@ func TestInsertBatch(t *testing.T) {
 	now2 := time.Now().Local()
 	tableNum2 := rand.New(rand.NewSource(now2.Unix())).Intn(10)
 
-	resultsMap := make([]map[string]any, 0)
+	resultTableRows := make([]client.TableRow, 0)
 	var totalCount int64
 
 	newToolKit(t).
@@ -361,19 +372,17 @@ func TestInsertBatch(t *testing.T) {
 					TablePrefixWithSchema: tablePrefix,
 					Version:               "v1",
 					KeyColumns:            []string{"id"},
-					TableRows: []map[string]any{
-						{
-							"id":        id1,
-							"name":      name1,
-							"time":      now1,
-							"table_num": tableNum1,
-						},
-						{
-							"id":        id2,
-							"name":      name2,
-							"time":      now2,
-							"table_num": tableNum2,
-						},
+					TableRows: []*client.TableRow{
+						client.NewTableRow().
+							AddColumnValueString("id", id1).
+							AddColumnValueString("name", name1).
+							AddColumnValueTime("time", now1).
+							AddColumnValueInt("table_num", tableNum1),
+						client.NewTableRow().
+							AddColumnValueString("id", id2).
+							AddColumnValueString("name", name2).
+							AddColumnValueTime("time", now2).
+							AddColumnValueInt("table_num", tableNum2),
 					},
 				},
 			},
@@ -386,12 +395,12 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, &resultsMap, &totalCount).
+		}, &resultTableRows, &totalCount).
 		assertEqual(1, int(totalCount), "总数不一致").
-		assertEqual(id1, resultsMap[0]["id"], "ID不一致").
-		assertEqual(name1, resultsMap[0]["name"], "名称不一致").
-		assertEqual(now1.Unix(), resultsMap[0]["time"].(time.Time).Local().Unix(), "时间不一致").
-		assertEqual(uint64(tableNum1), resultsMap[0]["table_num"], "表数量不一致").
+		assertEqual(id1, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name1, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now1.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum1, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
 		commonQuery(&client.CommonQueryRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
@@ -400,12 +409,12 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, &resultsMap, &totalCount).
+		}, &resultTableRows, &totalCount).
 		assertEqual(1, int(totalCount), "总数不一致").
-		assertEqual(id2, resultsMap[0]["id"], "ID不一致").
-		assertEqual(name2, resultsMap[0]["name"], "名称不一致").
-		assertEqual(now2.Unix(), resultsMap[0]["time"].(time.Time).Local().Unix(), "时间不一致").
-		assertEqual(uint64(tableNum2), resultsMap[0]["table_num"], "表数量不一致").
+		assertEqual(id2, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name2, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now2.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum2, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
 		queryOnlyByWhereAndOrderBy(&client.QueryByWhereAndOrderByRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
@@ -414,11 +423,11 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, &resultsMap).
-		assertEqual(id1, resultsMap[0]["id"], "ID不一致").
-		assertEqual(name1, resultsMap[0]["name"], "名称不一致").
-		assertEqual(now1.Unix(), resultsMap[0]["time"].(time.Time).Local().Unix(), "时间不一致").
-		assertEqual(uint64(tableNum1), resultsMap[0]["table_num"], "表数量不一致").
+		}, &resultTableRows).
+		assertEqual(id1, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name1, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now1.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum1, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
 		commonQueryOnly(&client.CommonQueryRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
@@ -427,11 +436,11 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, &resultsMap).
-		assertEqual(id2, resultsMap[0]["id"], "ID不一致").
-		assertEqual(name2, resultsMap[0]["name"], "名称不一致").
-		assertEqual(now2.Unix(), resultsMap[0]["time"].(time.Time).Local().Unix(), "时间不一致").
-		assertEqual(uint64(tableNum2), resultsMap[0]["table_num"], "表数量不一致")
+		}, &resultTableRows).
+		assertEqual(id2, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name2, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now2.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum2, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致")
 }
 
 func TestUpdate(t *testing.T) {
@@ -448,7 +457,7 @@ func TestUpdate(t *testing.T) {
 	newNow := time.Now().Local()
 	newTableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
 
-	resultMap := make(map[string]any)
+	resultTableRow := client.NewTableRow()
 
 	newToolKit(t).
 		autoMigrate([]client.AutoMigrateItem{
@@ -462,35 +471,33 @@ func TestUpdate(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyColumns:            []string{"id"},
-			TableRow: map[string]any{
-				"id":        id,
-				"name":      name,
-				"time":      now,
-				"table_num": tableNum,
-			},
+			TableRow: client.NewTableRow().
+				AddColumnValueString("id", id).
+				AddColumnValueString("name", name).
+				AddColumnValueTime("time", now).
+				AddColumnValueInt("table_num", tableNum),
 			UserID: "test",
 		}).
 		update(&client.UpdateRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id},
-			NewTableRow: map[string]any{
-				"id":        id,
-				"name":      newName,
-				"time":      newNow,
-				"table_num": newTableNum,
-			},
+			NewTableRow: client.NewTableRow().
+				AddColumnValueString("id", id).
+				AddColumnValueString("name", newName).
+				AddColumnValueTime("time", newNow).
+				AddColumnValueInt("table_num", newTableNum),
 			UserID: "test",
 		}).
 		queryByKeys(&client.QueryByKeysRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id},
-		}, &resultMap).
-		assertEqual(id, resultMap["id"], "ID不一致").
-		assertEqual(newName, resultMap["name"], "名称不一致").
-		assertEqual(newNow.Unix(), resultMap["time"].(time.Time).Local().Unix(), "时间不一致").
-		assertEqual(uint64(newTableNum), resultMap["table_num"], "表数量不一致")
+		}, resultTableRow).
+		assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
+		assertEqual(newName, resultTableRow.ColumnValueString("name"), "名称不一致").
+		assertEqual(newNow.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(newTableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致")
 }
 
 func TestDelete(t *testing.T) {
@@ -518,12 +525,11 @@ func TestDelete(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyColumns:            []string{"id"},
-			TableRow: map[string]any{
-				"id":        id,
-				"name":      name,
-				"time":      now,
-				"table_num": tableNum,
-			},
+			TableRow: client.NewTableRow().
+				AddColumnValueString("id", id).
+				AddColumnValueString("name", name).
+				AddColumnValueTime("time", now).
+				AddColumnValueInt("table_num", tableNum),
 			UserID: "test",
 		}).
 		delete(&client.DeleteRequest{
@@ -574,19 +580,17 @@ func TestDeleteBatch(t *testing.T) {
 					TablePrefixWithSchema: tablePrefix,
 					Version:               "v1",
 					KeyColumns:            []string{"id"},
-					TableRows: []map[string]any{
-						{
-							"id":        id1,
-							"name":      name1,
-							"time":      now1,
-							"table_num": tableNum1,
-						},
-						{
-							"id":        id2,
-							"name":      name2,
-							"time":      now2,
-							"table_num": tableNum2,
-						},
+					TableRows: []*client.TableRow{
+						client.NewTableRow().
+							AddColumnValueString("id", id1).
+							AddColumnValueString("name", name1).
+							AddColumnValueTime("time", now1).
+							AddColumnValueInt("table_num", tableNum1),
+						client.NewTableRow().
+							AddColumnValueString("id", id2).
+							AddColumnValueString("name", name2).
+							AddColumnValueTime("time", now2).
+							AddColumnValueInt("table_num", tableNum2),
 					},
 				},
 			},
@@ -622,7 +626,7 @@ func TestReply(t *testing.T) {
 	now := time.Now().Local()
 	tableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
 
-	resultMap := make(map[string]any)
+	resultTableRow := client.NewTableRow()
 
 	newToolKit(t).
 		autoMigrate([]client.AutoMigrateItem{
@@ -636,12 +640,11 @@ func TestReply(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyColumns:            []string{"id"},
-			TableRow: map[string]any{
-				"id":        id,
-				"name":      name,
-				"time":      now,
-				"table_num": tableNum,
-			},
+			TableRow: client.NewTableRow().
+				AddColumnValueString("id", id).
+				AddColumnValueString("name", name).
+				AddColumnValueTime("time", now).
+				AddColumnValueInt("table_num", tableNum),
 			UserID: "test",
 		}).
 		reply(&client.ReplayRequest{
@@ -654,11 +657,11 @@ func TestReply(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id},
-		}, &resultMap).
-		assertEqual(id, resultMap["id"], "ID不一致").
-		assertEqual(name, resultMap["name"], "名称不一致").
-		assertEqual(now.Unix(), resultMap["time"].(time.Time).Local().Unix(), "时间不一致").
-		assertEqual(uint64(tableNum), resultMap["table_num"], "表数量不一致")
+		}, resultTableRow).
+		assertEqual(id, resultTableRow.ColumnValueString("id"), "ID不一致").
+		assertEqual(name, resultTableRow.ColumnValueString("name"), "名称不一致").
+		assertEqual(now.Unix(), resultTableRow.ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum, resultTableRow.ColumnValueInt("table_num"), "表数量不一致")
 }
 
 func TestEventQuery(t *testing.T) {
@@ -675,6 +678,7 @@ func TestEventQuery(t *testing.T) {
 	newNow := time.Now().Local()
 	newTableNum := rand.New(rand.NewSource(now.Unix())).Intn(10)
 
+	var exist bool
 	var totalCount int64
 	eventInfos := make([]client.EventInfo, 0)
 
@@ -690,24 +694,37 @@ func TestEventQuery(t *testing.T) {
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyColumns:            []string{"id"},
-			TableRow: map[string]any{
-				"id":        id,
-				"name":      name,
-				"time":      now,
-				"table_num": tableNum,
-			},
+			TableRow: client.NewTableRow().
+				AddColumnValueString("id", id).
+				AddColumnValueString("name", name).
+				AddColumnValueTime("time", now).
+				AddColumnValueInt("table_num", tableNum),
 			UserID: "test",
 		}).
+		checkEventExistByKeys(&client.CountEventByKeysRequest{
+			TablePrefixWithSchema: tablePrefix,
+			KeyValues:             []string{id},
+		}, &exist).
+		assertEqual(true, exist, "存在状态不一致").
+		commonCheckEventExist(&client.CommonCountEventRequest{
+			TablePrefixWithSchema: tablePrefix,
+			KeyValues:             []string{id},
+			Version:               "v1",
+			Operation:             "create",
+			CreatorID:             "test",
+			StartCreatedTime:      now.Format(time.DateTime),
+			EndCreatedTime:        now.Add(time.Second).Format(time.DateTime),
+		}, &exist).
+		assertEqual(true, exist, "存在状态不一致").
 		update(&client.UpdateRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
 			KeyValues:             map[string]string{"id": id},
-			NewTableRow: map[string]any{
-				"id":        id,
-				"name":      newName,
-				"time":      newNow,
-				"table_num": newTableNum,
-			},
+			NewTableRow: client.NewTableRow().
+				AddColumnValueString("id", id).
+				AddColumnValueString("name", newName).
+				AddColumnValueTime("time", newNow).
+				AddColumnValueInt("table_num", newTableNum),
 			UserID: "test",
 		}).
 		countEventByKeys(&client.CountEventByKeysRequest{
@@ -881,6 +898,21 @@ func TestEventQuery(t *testing.T) {
 			KeyValues:             map[string]string{"id": id},
 			UserID:                "test",
 		}).
+		checkEventHistoryExistByKeys(&client.CountEventByKeysRequest{
+			TablePrefixWithSchema: tablePrefix,
+			KeyValues:             []string{id},
+		}, &exist).
+		assertEqual(true, exist, "存在状态不一致").
+		commonCheckEventHistoryExist(&client.CommonCountEventRequest{
+			TablePrefixWithSchema: tablePrefix,
+			KeyValues:             []string{id},
+			Version:               "v1",
+			Operation:             "create",
+			CreatorID:             "test",
+			StartCreatedTime:      now.Format(time.DateTime),
+			EndCreatedTime:        now.Add(time.Second).Format(time.DateTime),
+		}, &exist).
+		assertEqual(true, exist, "存在状态不一致").
 		countEventHistoryByKeys(&client.CountEventByKeysRequest{
 			TablePrefixWithSchema: tablePrefix,
 			KeyValues:             []string{id},

+ 98 - 32
test/instance/sdk.go

@@ -101,15 +101,14 @@ func (toolKit *ToolKit) reply(req *client.ReplayRequest) *ToolKit {
 	return toolKit
 }
 
-func (toolKit *ToolKit) queryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retInfosMap *[]map[string]any, retTotalCount *int64) *ToolKit {
-	infosMap, totalCount, err := dps.QueryByWhereAndOrderBy(req)
+func (toolKit *ToolKit) queryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retTableRows *[]client.TableRow, retTotalCount *int64) *ToolKit {
+	tableRows, totalCount, err := dps.QueryByWhereAndOrderBy(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
 	}
 
-	if retInfosMap != nil {
-		*retInfosMap = make([]map[string]any, 0)
-		*retInfosMap = infosMap
+	if retTableRows != nil {
+		*retTableRows = tableRows
 	}
 
 	if retTotalCount != nil {
@@ -119,15 +118,14 @@ func (toolKit *ToolKit) queryByWhereAndOrderBy(req *client.QueryByWhereAndOrderB
 	return toolKit
 }
 
-func (toolKit *ToolKit) commonQuery(req *client.CommonQueryRequest, retInfosMap *[]map[string]any, retTotalCount *int64) *ToolKit {
-	infosMap, totalCount, err := dps.CommonQuery(req)
+func (toolKit *ToolKit) commonQuery(req *client.CommonQueryRequest, retTableRows *[]client.TableRow, retTotalCount *int64) *ToolKit {
+	tableRows, totalCount, err := dps.CommonQuery(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
 	}
 
-	if retInfosMap != nil {
-		*retInfosMap = make([]map[string]any, 0)
-		*retInfosMap = infosMap
+	if retTableRows != nil {
+		*retTableRows = tableRows
 	}
 
 	if retTotalCount != nil {
@@ -137,43 +135,40 @@ func (toolKit *ToolKit) commonQuery(req *client.CommonQueryRequest, retInfosMap
 	return toolKit
 }
 
-func (toolKit *ToolKit) queryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retInfosMap *[]map[string]any) *ToolKit {
-	infosMap, err := dps.QueryOnlyByWhereAndOrderBy(req)
+func (toolKit *ToolKit) queryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retTableRows *[]client.TableRow) *ToolKit {
+	tableRows, err := dps.QueryOnlyByWhereAndOrderBy(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
 	}
 
-	if retInfosMap != nil {
-		*retInfosMap = make([]map[string]any, 0)
-		*retInfosMap = infosMap
+	if retTableRows != nil {
+		*retTableRows = tableRows
 	}
 
 	return toolKit
 }
 
-func (toolKit *ToolKit) commonQueryOnly(req *client.CommonQueryRequest, retInfosMap *[]map[string]any) *ToolKit {
-	infosMap, err := dps.CommonQueryOnly(req)
+func (toolKit *ToolKit) commonQueryOnly(req *client.CommonQueryRequest, retTableRows *[]client.TableRow) *ToolKit {
+	tableRows, err := dps.CommonQueryOnly(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
 	}
 
-	if retInfosMap != nil {
-		*retInfosMap = make([]map[string]any, 0)
-		*retInfosMap = infosMap
+	if retTableRows != nil {
+		*retTableRows = tableRows
 	}
 
 	return toolKit
 }
 
-func (toolKit *ToolKit) queryByKeys(req *client.QueryByKeysRequest, retInfoMap *map[string]any) *ToolKit {
-	infoMap, err := dps.QueryByKeys(req)
+func (toolKit *ToolKit) queryByKeys(req *client.QueryByKeysRequest, retTableRow *client.TableRow) *ToolKit {
+	tableRow, err := dps.QueryByKeys(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
 	}
 
-	if retInfoMap != nil {
-		*retInfoMap = make(map[string]any)
-		*retInfoMap = infoMap
+	if retTableRow != nil {
+		*retTableRow = *tableRow
 	}
 
 	return toolKit
@@ -205,6 +200,32 @@ func (toolKit *ToolKit) commonCount(req *client.CommonCountRequest, retCount *in
 	return toolKit
 }
 
+func (toolKit *ToolKit) checkExistWhere(req *client.CountWhereRequest, retExist *bool) *ToolKit {
+	exist, err := dps.CheckExistWhere(req)
+	if err != nil {
+		toolKit.t.Fatal(err)
+	}
+
+	if retExist != nil {
+		*retExist = exist
+	}
+
+	return toolKit
+}
+
+func (toolKit *ToolKit) commonCheckExist(req *client.CommonCountRequest, retExist *bool) *ToolKit {
+	exist, err := dps.CommonCheckExist(req)
+	if err != nil {
+		toolKit.t.Fatal(err)
+	}
+
+	if retExist != nil {
+		*retExist = exist
+	}
+
+	return toolKit
+}
+
 func (toolKit *ToolKit) eventQueryByKeys(req *client.EventQueryByKeysRequest, retInfos *[]client.EventInfo, retTotalCount *int64) *ToolKit {
 	infos, totalCount, err := dps.EventQueryByKeys(req)
 	if err != nil {
@@ -230,7 +251,6 @@ func (toolKit *ToolKit) commonEventQuery(req *client.CommonEventQueryRequest, re
 	}
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -248,7 +268,6 @@ func (toolKit *ToolKit) eventQueryOnlyByKeys(req *client.EventQueryByKeysRequest
 	}
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -262,7 +281,6 @@ func (toolKit *ToolKit) commonEventQueryOnly(req *client.CommonEventQueryRequest
 	}
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -295,6 +313,32 @@ func (toolKit *ToolKit) commonCountEvent(req *client.CommonCountEventRequest, re
 	return toolKit
 }
 
+func (toolKit *ToolKit) checkEventExistByKeys(req *client.CountEventByKeysRequest, retExist *bool) *ToolKit {
+	exist, err := dps.CheckEventExistByKeys(req)
+	if err != nil {
+		toolKit.t.Fatal(err)
+	}
+
+	if retExist != nil {
+		*retExist = exist
+	}
+
+	return toolKit
+}
+
+func (toolKit *ToolKit) commonCheckEventExist(req *client.CommonCountEventRequest, retExist *bool) *ToolKit {
+	exist, err := dps.CommonCheckEventExist(req)
+	if err != nil {
+		toolKit.t.Fatal(err)
+	}
+
+	if retExist != nil {
+		*retExist = exist
+	}
+
+	return toolKit
+}
+
 func (toolKit *ToolKit) eventHistoryQueryByKeys(req *client.EventQueryByKeysRequest, retInfos *[]client.EventInfo, retTotalCount *int64) *ToolKit {
 	infos, totalCount, err := dps.EventHistoryQueryByKeys(req)
 	if err != nil {
@@ -302,7 +346,6 @@ func (toolKit *ToolKit) eventHistoryQueryByKeys(req *client.EventQueryByKeysRequ
 	}
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -320,7 +363,6 @@ func (toolKit *ToolKit) commonEventHistoryQuery(req *client.CommonEventQueryRequ
 	}
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -338,7 +380,6 @@ func (toolKit *ToolKit) eventHistoryQueryOnlyByKeys(req *client.EventQueryByKeys
 	}
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -352,7 +393,6 @@ func (toolKit *ToolKit) commonEventHistoryQueryOnly(req *client.CommonEventQuery
 	}
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -385,6 +425,32 @@ func (toolKit *ToolKit) commonCountEventHistory(req *client.CommonCountEventRequ
 	return toolKit
 }
 
+func (toolKit *ToolKit) checkEventHistoryExistByKeys(req *client.CountEventByKeysRequest, retExist *bool) *ToolKit {
+	exist, err := dps.CheckEventHistoryExistByKeys(req)
+	if err != nil {
+		toolKit.t.Fatal(err)
+	}
+
+	if retExist != nil {
+		*retExist = exist
+	}
+
+	return toolKit
+}
+
+func (toolKit *ToolKit) commonCheckEventHistoryExist(req *client.CommonCountEventRequest, retExist *bool) *ToolKit {
+	exist, err := dps.CommonCheckEventHistoryExist(req)
+	if err != nil {
+		toolKit.t.Fatal(err)
+	}
+
+	if retExist != nil {
+		*retExist = exist
+	}
+
+	return toolKit
+}
+
 func (toolKit *ToolKit) assertEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) *ToolKit {
 	assert.Equal(toolKit.t, expected, actual, msgAndArgs)
 	return toolKit

+ 8 - 14
test/v1/sdk.go

@@ -120,7 +120,7 @@ func (toolKit *ToolKit) reply(req *client.ReplayRequest) *ToolKit {
 	return toolKit
 }
 
-func (toolKit *ToolKit) queryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retTableRows *client.TableRows, retTotalCount *int64) *ToolKit {
+func (toolKit *ToolKit) queryByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retTableRows *[]client.TableRow, retTotalCount *int64) *ToolKit {
 	statement, tableRows, totalCount, err := clientInstance.QueryByWhereAndOrderBy(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
@@ -129,7 +129,7 @@ func (toolKit *ToolKit) queryByWhereAndOrderBy(req *client.QueryByWhereAndOrderB
 	fmt.Println(statement)
 
 	if retTableRows != nil {
-		*retTableRows = *tableRows
+		*retTableRows = tableRows
 	}
 
 	if retTotalCount != nil {
@@ -139,7 +139,7 @@ func (toolKit *ToolKit) queryByWhereAndOrderBy(req *client.QueryByWhereAndOrderB
 	return toolKit
 }
 
-func (toolKit *ToolKit) commonQuery(req *client.CommonQueryRequest, retTableRows *client.TableRows, retTotalCount *int64) *ToolKit {
+func (toolKit *ToolKit) commonQuery(req *client.CommonQueryRequest, retTableRows *[]client.TableRow, retTotalCount *int64) *ToolKit {
 	statement, tableRows, totalCount, err := clientInstance.CommonQuery(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
@@ -148,7 +148,7 @@ func (toolKit *ToolKit) commonQuery(req *client.CommonQueryRequest, retTableRows
 	fmt.Println(statement)
 
 	if retTableRows != nil {
-		*retTableRows = *tableRows
+		*retTableRows = tableRows
 	}
 
 	if retTotalCount != nil {
@@ -158,7 +158,7 @@ func (toolKit *ToolKit) commonQuery(req *client.CommonQueryRequest, retTableRows
 	return toolKit
 }
 
-func (toolKit *ToolKit) queryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retTableRows *client.TableRows) *ToolKit {
+func (toolKit *ToolKit) queryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOrderByRequest, retTableRows *[]client.TableRow) *ToolKit {
 	statement, tableRows, err := clientInstance.QueryOnlyByWhereAndOrderBy(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
@@ -167,13 +167,13 @@ func (toolKit *ToolKit) queryOnlyByWhereAndOrderBy(req *client.QueryByWhereAndOr
 	fmt.Println(statement)
 
 	if retTableRows != nil {
-		*retTableRows = *tableRows
+		*retTableRows = tableRows
 	}
 
 	return toolKit
 }
 
-func (toolKit *ToolKit) commonQueryOnly(req *client.CommonQueryRequest, retTableRows *client.TableRows) *ToolKit {
+func (toolKit *ToolKit) commonQueryOnly(req *client.CommonQueryRequest, retTableRows *[]client.TableRow) *ToolKit {
 	statement, tableRows, err := clientInstance.CommonQueryOnly(req)
 	if err != nil {
 		toolKit.t.Fatal(err)
@@ -182,7 +182,7 @@ func (toolKit *ToolKit) commonQueryOnly(req *client.CommonQueryRequest, retTable
 	fmt.Println(statement)
 
 	if retTableRows != nil {
-		*retTableRows = *tableRows
+		*retTableRows = tableRows
 	}
 
 	return toolKit
@@ -282,7 +282,6 @@ func (toolKit *ToolKit) eventQueryOnlyByKeys(req *client.EventQueryByKeysRequest
 	fmt.Println(statement)
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -298,7 +297,6 @@ func (toolKit *ToolKit) commonEventQueryOnly(req *client.CommonEventQueryRequest
 	fmt.Println(statement)
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -344,7 +342,6 @@ func (toolKit *ToolKit) eventHistoryQueryByKeys(req *client.EventQueryByKeysRequ
 	fmt.Println(statement)
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -364,7 +361,6 @@ func (toolKit *ToolKit) commonEventHistoryQuery(req *client.CommonEventQueryRequ
 	fmt.Println(statement)
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -384,7 +380,6 @@ func (toolKit *ToolKit) eventHistoryQueryOnlyByKeys(req *client.EventQueryByKeys
 	fmt.Println(statement)
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 
@@ -400,7 +395,6 @@ func (toolKit *ToolKit) commonEventHistoryQueryOnly(req *client.CommonEventQuery
 	fmt.Println(statement)
 
 	if retInfos != nil {
-		*retInfos = make([]client.EventInfo, 0)
 		*retInfos = infos
 	}
 

+ 21 - 21
test/v1/v1_test.go

@@ -346,7 +346,7 @@ func TestInsertBatch(t *testing.T) {
 	now2 := time.Now().Local()
 	tableNum2 := rand.New(rand.NewSource(now2.Unix())).Intn(10)
 
-	resultTableRows := new(client.TableRows)
+	resultTableRows := make([]client.TableRow, 0)
 	var totalCount int64
 
 	newToolKit(t).
@@ -388,12 +388,12 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, resultTableRows, &totalCount).
+		}, &resultTableRows, &totalCount).
 		assertEqual(1, int(totalCount), "总数不一致").
-		assertEqual(id1, (*resultTableRows)[0].ColumnValueString("id"), "ID不一致").
-		assertEqual(name1, (*resultTableRows)[0].ColumnValueString("name"), "名称不一致").
-		assertEqual(now1.Unix(), (*resultTableRows)[0].ColumnValueTime("time").Unix(), "时间不一致").
-		assertEqual(tableNum1, (*resultTableRows)[0].ColumnValueInt("table_num"), "表数量不一致").
+		assertEqual(id1, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name1, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now1.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum1, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
 		commonQuery(&client.CommonQueryRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
@@ -402,12 +402,12 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, resultTableRows, &totalCount).
+		}, &resultTableRows, &totalCount).
 		assertEqual(1, int(totalCount), "总数不一致").
-		assertEqual(id2, (*resultTableRows)[0].ColumnValueString("id"), "ID不一致").
-		assertEqual(name2, (*resultTableRows)[0].ColumnValueString("name"), "名称不一致").
-		assertEqual(now2.Unix(), (*resultTableRows)[0].ColumnValueTime("time").Unix(), "时间不一致").
-		assertEqual(tableNum2, (*resultTableRows)[0].ColumnValueInt("table_num"), "表数量不一致").
+		assertEqual(id2, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name2, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now2.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum2, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
 		queryOnlyByWhereAndOrderBy(&client.QueryByWhereAndOrderByRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
@@ -416,11 +416,11 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, resultTableRows).
-		assertEqual(id1, (*resultTableRows)[0].ColumnValueString("id"), "ID不一致").
-		assertEqual(name1, (*resultTableRows)[0].ColumnValueString("name"), "名称不一致").
-		assertEqual(now1.Unix(), (*resultTableRows)[0].ColumnValueTime("time").Unix(), "时间不一致").
-		assertEqual(tableNum1, (*resultTableRows)[0].ColumnValueInt("table_num"), "表数量不一致").
+		}, &resultTableRows).
+		assertEqual(id1, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name1, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now1.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum1, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致").
 		commonQueryOnly(&client.CommonQueryRequest{
 			TablePrefixWithSchema: tablePrefix,
 			Version:               "v1",
@@ -429,11 +429,11 @@ func TestInsertBatch(t *testing.T) {
 			},
 			PageNo:   1,
 			PageSize: 1,
-		}, resultTableRows).
-		assertEqual(id2, (*resultTableRows)[0].ColumnValueString("id"), "ID不一致").
-		assertEqual(name2, (*resultTableRows)[0].ColumnValueString("name"), "名称不一致").
-		assertEqual(now2.Unix(), (*resultTableRows)[0].ColumnValueTime("time").Unix(), "时间不一致").
-		assertEqual(tableNum2, (*resultTableRows)[0].ColumnValueInt("table_num"), "表数量不一致")
+		}, &resultTableRows).
+		assertEqual(id2, resultTableRows[0].ColumnValueString("id"), "ID不一致").
+		assertEqual(name2, resultTableRows[0].ColumnValueString("name"), "名称不一致").
+		assertEqual(now2.Unix(), resultTableRows[0].ColumnValueTime("time").Unix(), "时间不一致").
+		assertEqual(tableNum2, resultTableRows[0].ColumnValueInt("table_num"), "表数量不一致")
 }
 
 func TestUpdate(t *testing.T) {