Skip to content

Conversation

@tnelson-doghouse
Copy link
Contributor

As per the issue writeup at https://github.com/skpr/mtk/issues/36 , the sanitiser was outputting unquoted numbers in the dump if the text was only a number, even if the field type wasn't a numeric type.

This PR adds an additional check against the known Numeric types in MySQL. If it's a known numeric type, it keeps the current behaviour, but if it's not (ie. if it's a TEXT, VARCHAR, or JSON type), it will still quote the number.

This should result in fewer errors when trying to import a sanitised dump.

-   Renamed variables as requested by linter
-   Used slices.Contains better
-   Did error-checking on rows.ColumnTypes
internal/mysql/utils_test.go:
-   Passed in second parameter for all tests
-   Added a new test so that we can test both numbers in a numeric type and numbers in a non-numeric type

internal/mysql/write.go:
-   Converted type to uppercase before passing to getValue

internal/mysql/write_test.go:
-   Switched around parameters to assert.Equal, because they were in the wrong order
-   Added quotes to the insert statements, because apparently that's what they do now (unless we can figure out a way to have sql_mock do column.DatabaseTypeName())
@tnelson-doghouse
Copy link
Contributor Author

Tagging @jez500 and @thery-dh

@tnelson-doghouse
Copy link
Contributor Author

Tagging @nickschuch just in case he doesn't get notifications for PRs (apologies if you already do).

@nickschuch
Copy link
Collaborator

Somehow I missed this! Sorry @tnelson-doghouse !

Ill review it this week and go from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants