diff --git a/cdc/entry/mounter_test.go b/cdc/entry/mounter_test.go index 464830f0340..1f4e02213e6 100644 --- a/cdc/entry/mounter_test.go +++ b/cdc/entry/mounter_test.go @@ -1679,13 +1679,13 @@ func TestNewDMRowChange(t *testing.T) { cdcTableInfo := model.WrapTableInfo(0, "test", 0, originTI) cols := []*model.Column{ { - Name: "id", Type: 3, Charset: "binary", Flag: 65, Value: 1, Default: nil, + Name: "id", Type: 3, Charset: "binary", Flag: 65, Value: 1, }, { - Name: "a1", Type: 3, Charset: "binary", Flag: 51, Value: 1, Default: nil, + Name: "a1", Type: 3, Charset: "binary", Flag: 51, Value: 1, }, { - Name: "a3", Type: 3, Charset: "binary", Flag: 51, Value: 2, Default: nil, + Name: "a3", Type: 3, Charset: "binary", Flag: 51, Value: 2, }, } recoveredTI := model.BuildTiDBTableInfo(cdcTableInfo.TableName.Table, cols, cdcTableInfo.IndexColumnsOffset) diff --git a/cdc/model/schema_storage.go b/cdc/model/schema_storage.go index dbd718862fc..de8195fed7a 100644 --- a/cdc/model/schema_storage.go +++ b/cdc/model/schema_storage.go @@ -21,7 +21,6 @@ import ( "github.com/pingcap/tidb/pkg/parser/mysql" "github.com/pingcap/tidb/pkg/parser/types" "github.com/pingcap/tidb/pkg/table/tables" - datumTypes "github.com/pingcap/tidb/pkg/types" "github.com/pingcap/tidb/pkg/util/rowcodec" "go.uber.org/zap" ) @@ -501,13 +500,3 @@ func (ti *TableInfo) GetPrimaryKeyColumnNames() []string { } return result } - -// GetColumnDefaultValue returns the default definition of a column. -func GetColumnDefaultValue(col *model.ColumnInfo) interface{} { - defaultValue := col.GetDefaultValue() - if defaultValue == nil { - defaultValue = col.GetOriginDefaultValue() - } - defaultDatum := datumTypes.NewDatum(defaultValue) - return defaultDatum.GetValue() -} diff --git a/cdc/model/sink.go b/cdc/model/sink.go index 50151d40e75..7c29a00c4e3 100644 --- a/cdc/model/sink.go +++ b/cdc/model/sink.go @@ -479,7 +479,7 @@ func columnData2Column(col *ColumnData, tableInfo *TableInfo) *Column { Collation: colInfo.GetCollate(), Flag: tableInfo.ColumnsFlag[colID], Value: col.Value, - Default: GetColumnDefaultValue(colInfo), + Default: colInfo.GetDefaultValue(), } } diff --git a/pkg/sink/cloudstorage/table_definition.go b/pkg/sink/cloudstorage/table_definition.go index 2efb7b5e3c9..d28c0be240e 100644 --- a/pkg/sink/cloudstorage/table_definition.go +++ b/pkg/sink/cloudstorage/table_definition.go @@ -76,7 +76,7 @@ func (t *TableCol) FromTiColumnInfo(col *timodel.ColumnInfo, outputColumnID bool if mysql.HasNotNullFlag(col.GetFlag()) { t.Nullable = "false" } - t.Default = model.GetColumnDefaultValue(col) + t.Default = col.GetDefaultValue() switch col.GetType() { case mysql.TypeTimestamp, mysql.TypeDatetime, mysql.TypeDuration: diff --git a/pkg/sink/codec/simple/avro.go b/pkg/sink/codec/simple/avro.go index 9ed492aba49..9f1c79c0342 100644 --- a/pkg/sink/codec/simple/avro.go +++ b/pkg/sink/codec/simple/avro.go @@ -112,7 +112,7 @@ func newTableSchemaMap(tableInfo *model.TableInfo) interface{} { "nullable": !mysql.HasNotNullFlag(col.GetFlag()), "default": nil, } - defaultValue := model.GetColumnDefaultValue(col) + defaultValue := col.GetDefaultValue() if defaultValue != nil { // according to TiDB source code, the default value is converted to string if not nil. column["default"] = map[string]interface{}{ diff --git a/pkg/sink/codec/simple/encoder_test.go b/pkg/sink/codec/simple/encoder_test.go index bd8eaa55086..efc0d7538e1 100644 --- a/pkg/sink/codec/simple/encoder_test.go +++ b/pkg/sink/codec/simple/encoder_test.go @@ -1423,7 +1423,7 @@ func TestEncodeLargeEventsNormal(t *testing.T) { obtainedDefaultValues := make(map[string]interface{}, len(obtainedDDL.TableInfo.Columns)) for _, col := range obtainedDDL.TableInfo.Columns { - obtainedDefaultValues[col.Name.O] = model.GetColumnDefaultValue(col) + obtainedDefaultValues[col.Name.O] = col.GetDefaultValue() switch col.GetType() { case mysql.TypeFloat, mysql.TypeDouble: require.Equal(t, 0, col.GetDecimal()) @@ -1431,7 +1431,7 @@ func TestEncodeLargeEventsNormal(t *testing.T) { } } for _, col := range ddlEvent.TableInfo.Columns { - expected := model.GetColumnDefaultValue(col) + expected := col.GetDefaultValue() obtained := obtainedDefaultValues[col.Name.O] require.Equal(t, expected, obtained) } diff --git a/pkg/sink/codec/simple/message.go b/pkg/sink/codec/simple/message.go index 1fa0ec2e174..0850567b7f6 100644 --- a/pkg/sink/codec/simple/message.go +++ b/pkg/sink/codec/simple/message.go @@ -143,7 +143,7 @@ func newColumnSchema(col *timodel.ColumnInfo) *columnSchema { tp.Decimal = col.GetDecimal() } - defaultValue := model.GetColumnDefaultValue(col) + defaultValue := col.GetDefaultValue() if defaultValue != nil && col.GetType() == mysql.TypeBit { defaultValue = common.MustBinaryLiteralToInt([]byte(defaultValue.(string))) }