This is an automated email from the ASF dual-hosted git repository.
luky116 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-seata-go.git
The following commit(s) were added to refs/heads/master by this push:
new 6bf7b943 fix: bypassing modifying the primary key (#727)
6bf7b943 is described below
commit 6bf7b943886ca15bad1869049b2b9aa871f91d55
Author: FinnTew <[email protected]>
AuthorDate: Sat Dec 14 16:51:50 2024 +0800
fix: bypassing modifying the primary key (#727)
* adjust unit tests to verify the issue of "bypassing modifying the primary
key"
* fix: bypass modify the primary key
---
.../builder/mysql_insertonduplicate_update_undo_log_builder.go | 10 +++++-----
.../mysql_insertonduplicate_update_undo_log_builder_test.go | 8 ++++----
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git
a/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder.go
b/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder.go
index 4a23dedd..6b82d537 100644
---
a/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder.go
+++
b/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder.go
@@ -128,7 +128,7 @@ func (u *MySQLInsertOnDuplicateUndoLogBuilder)
buildBeforeImageSQL(insertStmt *a
columnIsNull := true
uniqueList := make([]string, 0)
for _, columnMeta := range index.Columns {
- columnName := columnMeta.ColumnName
+ columnName :=
strings.ToLower(columnMeta.ColumnName)
imageParameters, ok := paramMap[columnName]
if !ok && columnMeta.ColumnDef != nil {
if strings.EqualFold("PRIMARY",
index.Name) {
@@ -222,7 +222,7 @@ func (u *MySQLInsertOnDuplicateUndoLogBuilder)
buildAfterImageSQL(ctx context.Co
func checkDuplicateKeyUpdate(insert *ast.InsertStmt, metaData types.TableMeta)
error {
duplicateColsMap := make(map[string]bool)
for _, v := range insert.OnDuplicate {
- duplicateColsMap[v.Column.Name.L] = true
+ duplicateColsMap[strings.ToLower(v.Column.Name.L)] = true
}
if len(duplicateColsMap) == 0 {
return nil
@@ -254,7 +254,7 @@ func (u *MySQLInsertOnDuplicateUndoLogBuilder)
buildImageParameters(insert *ast.
return nil, fmt.Errorf("insert row's column size not
equal to insert column size")
}
for i, col := range insertColumns {
- columnName := executor.DelEscape(col, types.DBTypeMySQL)
+ columnName := strings.ToLower(executor.DelEscape(col,
types.DBTypeMySQL))
val := row[i]
rStr, ok := val.(string)
if ok && strings.EqualFold(rStr, SqlPlaceholder) {
@@ -279,14 +279,14 @@ func getInsertColumns(insertStmt *ast.InsertStmt)
[]string {
}
var list []string
for _, col := range colList {
- list = append(list, col.Name.L)
+ list = append(list, strings.ToLower(col.Name.L))
}
return list
}
func isIndexValueNotNull(indexMeta types.IndexMeta, imageParameterMap
map[string][]driver.Value, rowIndex int) bool {
for _, colMeta := range indexMeta.Columns {
- columnName := colMeta.ColumnName
+ columnName := strings.ToLower(colMeta.ColumnName)
imageParameters := imageParameterMap[columnName]
if imageParameters == nil && colMeta.ColumnDef == nil {
return false
diff --git
a/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder_test.go
b/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder_test.go
index 03e028fe..59e673f7 100644
---
a/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder_test.go
+++
b/pkg/datasource/sql/undo/builder/mysql_insertonduplicate_update_undo_log_builder_test.go
@@ -46,7 +46,7 @@ func TestInsertOnDuplicateBuildBeforeImageSQL(t *testing.T) {
)
columnId := types.ColumnMeta{
ColumnDef: nil,
- ColumnName: "id",
+ ColumnName: "ID",
}
columnName := types.ColumnMeta{
ColumnDef: nil,
@@ -56,12 +56,12 @@ func TestInsertOnDuplicateBuildBeforeImageSQL(t *testing.T)
{
ColumnDef: nil,
ColumnName: "age",
}
- columns["id"] = columnId
+ columns["ID"] = columnId
columns["name"] = columnName
columns["age"] = columnAge
columnMeta1 = append(columnMeta1, columnId)
columnMeta2 = append(columnMeta2, columnName, columnAge)
- index["id"] = types.IndexMeta{
+ index["ID"] = types.IndexMeta{
Name: "PRIMARY",
IType: types.IndexTypePrimaryKey,
Columns: columnMeta1,
@@ -72,7 +72,7 @@ func TestInsertOnDuplicateBuildBeforeImageSQL(t *testing.T) {
Columns: columnMeta2,
}
- ColumnNames = []string{"id", "name", "age"}
+ ColumnNames = []string{"ID", "name", "age"}
tableMeta1 = types.TableMeta{
TableName: "t_user",
Columns: columns,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]