You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using :copyfrom in MySQL with sqlc and column names that are reserved keywords like create, read, update, delete fails with a MySQL syntax error, even if escaped.
Expected behavior
sqlc should either:
Automatically escape column names in the generated LOAD DATA LOCAL INFILE statement, or
Respect backticks in -- columns: directive
Actual behavior
The generated Go code produces a raw SQL string like:
LOAD DATA LOCAL INFILE 'Reader::xyz' INTO TABLE `role_system` (...) (role_id, system_id, create, read, update, delete)
The text was updated successfully, but these errors were encountered:
I made a work around using sed command
run this command after sqlc generate command.
this command works in bash sed -i '' 's/(role_id, system_id, create, read, update, delete)/(`role_id`, `system_id`, `create`, `read`, `update`, `delete`)/g' data/repository/*.go
I also use make file and just add a command for it:
Summary
Using
:copyfrom
in MySQL withsqlc
and column names that are reserved keywords likecreate
,read
,update
,delete
fails with a MySQL syntax error, even if escaped.Expected behavior
sqlc should either:
LOAD DATA LOCAL INFILE
statement, or-- columns:
directiveActual behavior
The generated Go code produces a raw SQL string like:
The text was updated successfully, but these errors were encountered: