Skip to content

Commit 17233fc

Browse files
author
Shlomi Noach
authored
Merge pull request #661 from esnunes/fix-inspector-column-types
Fix inspector column types
2 parents 8245b23 + 179a3c2 commit 17233fc

File tree

1 file changed

+23
-33
lines changed

1 file changed

+23
-33
lines changed

go/logic/inspect.go

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,7 @@ func (this *Inspector) inspectOriginalAndGhostTables() (err error) {
173173
// This additional step looks at which columns are unsigned. We could have merged this within
174174
// the `getTableColumns()` function, but it's a later patch and introduces some complexity; I feel
175175
// comfortable in doing this as a separate step.
176-
this.applyColumnTypes(this.migrationContext.DatabaseName, this.migrationContext.OriginalTableName, this.migrationContext.OriginalTableColumns, this.migrationContext.SharedColumns)
177-
this.applyColumnTypes(this.migrationContext.DatabaseName, this.migrationContext.OriginalTableName, &this.migrationContext.UniqueKey.Columns)
176+
this.applyColumnTypes(this.migrationContext.DatabaseName, this.migrationContext.OriginalTableName, this.migrationContext.OriginalTableColumns, this.migrationContext.SharedColumns, &this.migrationContext.UniqueKey.Columns)
178177
this.applyColumnTypes(this.migrationContext.DatabaseName, this.migrationContext.GetGhostTableName(), this.migrationContext.GhostTableColumns, this.migrationContext.MappedSharedColumns)
179178

180179
for i := range this.migrationContext.SharedColumns.Columns() {
@@ -552,44 +551,35 @@ func (this *Inspector) applyColumnTypes(databaseName, tableName string, columnsL
552551
err := sqlutils.QueryRowsMap(this.db, query, func(m sqlutils.RowMap) error {
553552
columnName := m.GetString("COLUMN_NAME")
554553
columnType := m.GetString("COLUMN_TYPE")
555-
if strings.Contains(columnType, "unsigned") {
556-
for _, columnsList := range columnsLists {
557-
columnsList.SetUnsigned(columnName)
554+
for _, columnsList := range columnsLists {
555+
column := columnsList.GetColumn(columnName)
556+
if column == nil {
557+
continue
558558
}
559-
}
560-
if strings.Contains(columnType, "mediumint") {
561-
for _, columnsList := range columnsLists {
562-
columnsList.GetColumn(columnName).Type = sql.MediumIntColumnType
559+
560+
if strings.Contains(columnType, "unsigned") {
561+
column.IsUnsigned = true
563562
}
564-
}
565-
if strings.Contains(columnType, "timestamp") {
566-
for _, columnsList := range columnsLists {
567-
columnsList.GetColumn(columnName).Type = sql.TimestampColumnType
563+
if strings.Contains(columnType, "mediumint") {
564+
column.Type = sql.MediumIntColumnType
568565
}
569-
}
570-
if strings.Contains(columnType, "datetime") {
571-
for _, columnsList := range columnsLists {
572-
columnsList.GetColumn(columnName).Type = sql.DateTimeColumnType
566+
if strings.Contains(columnType, "timestamp") {
567+
column.Type = sql.TimestampColumnType
573568
}
574-
}
575-
if strings.Contains(columnType, "json") {
576-
for _, columnsList := range columnsLists {
577-
columnsList.GetColumn(columnName).Type = sql.JSONColumnType
569+
if strings.Contains(columnType, "datetime") {
570+
column.Type = sql.DateTimeColumnType
578571
}
579-
}
580-
if strings.Contains(columnType, "float") {
581-
for _, columnsList := range columnsLists {
582-
columnsList.GetColumn(columnName).Type = sql.FloatColumnType
572+
if strings.Contains(columnType, "json") {
573+
column.Type = sql.JSONColumnType
583574
}
584-
}
585-
if strings.HasPrefix(columnType, "enum") {
586-
for _, columnsList := range columnsLists {
587-
columnsList.GetColumn(columnName).Type = sql.EnumColumnType
575+
if strings.Contains(columnType, "float") {
576+
column.Type = sql.FloatColumnType
588577
}
589-
}
590-
if charset := m.GetString("CHARACTER_SET_NAME"); charset != "" {
591-
for _, columnsList := range columnsLists {
592-
columnsList.SetCharset(columnName, charset)
578+
if strings.HasPrefix(columnType, "enum") {
579+
column.Type = sql.EnumColumnType
580+
}
581+
if charset := m.GetString("CHARACTER_SET_NAME"); charset != "" {
582+
column.Charset = charset
593583
}
594584
}
595585
return nil

0 commit comments

Comments
 (0)