|
@@ -70,6 +70,11 @@ func ApiV1(binding *http_binding.Binding, dpsAddress string, operatorIDFunc Oper
|
|
|
version = inputModel.Version
|
|
|
}
|
|
|
|
|
|
+ keyColumns := []string{"id"}
|
|
|
+ if inputModel.KeyColumns != nil && len(inputModel.KeyColumns) != 0 {
|
|
|
+ keyColumns = inputModel.KeyColumns
|
|
|
+ }
|
|
|
+
|
|
|
operatorID, err := operatorIDFunc(c)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
@@ -89,11 +94,11 @@ func ApiV1(binding *http_binding.Binding, dpsAddress string, operatorIDFunc Oper
|
|
|
for _, parsedClause := range parsedClauses {
|
|
|
switch clause := parsedClause.(type) {
|
|
|
case *insertClause:
|
|
|
- return doInsert(tx, version, clause, operatorID)
|
|
|
+ return doInsert(tx, version, keyColumns, clause, operatorID)
|
|
|
case *deleteClause:
|
|
|
- return doDelete(tx, version, clause, operatorID)
|
|
|
+ return doDelete(tx, version, keyColumns, clause, operatorID)
|
|
|
case *updateClause:
|
|
|
- return doUpdate(tx, version, clause, operatorID)
|
|
|
+ return doUpdate(tx, version, keyColumns, clause, operatorID)
|
|
|
case *selectClause:
|
|
|
return doSelect(dpsClient, version, clause)
|
|
|
default:
|
|
@@ -119,9 +124,8 @@ func insertMap(clause *insertClause) map[string]any {
|
|
|
}
|
|
|
|
|
|
return map[string]any{
|
|
|
- "table": clause.table,
|
|
|
- "key_columns": clause.keyColumns,
|
|
|
- "table_rows": tableRows,
|
|
|
+ "table": clause.table,
|
|
|
+ "table_rows": tableRows,
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -140,7 +144,7 @@ func selectMap(clause *selectClause) map[string]any {
|
|
|
return map[string]any{}
|
|
|
}
|
|
|
|
|
|
-func doInsert(tx client.Transaction, version string, clause *insertClause, operatorID string) error {
|
|
|
+func doInsert(tx client.Transaction, version string, keyColumns []string, clause *insertClause, operatorID string) error {
|
|
|
tableRow := client.NewTableRow()
|
|
|
for columnName, value := range clause.tableRows {
|
|
|
switch value.kind {
|
|
@@ -162,7 +166,7 @@ func doInsert(tx client.Transaction, version string, clause *insertClause, opera
|
|
|
statement, err := tx.InsertTx(&client.InsertRequest{
|
|
|
TablePrefixWithSchema: clause.table,
|
|
|
Version: version,
|
|
|
- KeyColumns: clause.keyColumns,
|
|
|
+ KeyColumns: keyColumns,
|
|
|
TableRow: tableRow,
|
|
|
UserID: operatorID,
|
|
|
})
|
|
@@ -174,11 +178,11 @@ func doInsert(tx client.Transaction, version string, clause *insertClause, opera
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func doDelete(tx client.Transaction, version string, clause *deleteClause, operatorID string) error {
|
|
|
+func doDelete(tx client.Transaction, version string, keyColumns []string, clause *deleteClause, operatorID string) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func doUpdate(tx client.Transaction, version string, clause *updateClause, operatorID string) error {
|
|
|
+func doUpdate(tx client.Transaction, version string, keyColumns []string, clause *updateClause, operatorID string) error {
|
|
|
return nil
|
|
|
}
|
|
|
|