format-sql icon indicating copy to clipboard operation
format-sql copied to clipboard

Don't overwrite file if SQL is invalid

Open astahlman opened this issue 9 years ago • 1 comments

Prior to this change, if the input file contained invalid SQL it would be overwritten with an empty file. This change lets the exception propagate so that the file is left untouched.

➜ format-sql git:(no-overwrite-invalid) cat /tmp/invalid.sql SELECT foo, bar FROMM snoober; ➜ format-sql git:(no-overwrite-invalid) python format_sql/main.py /tmp/invalid.sql /tmp/invalid.sql Traceback (most recent call last): File "format_sql/main.py", line 148, in main() File "format_sql/main.py", line 81, in main lines = handle_sql_file(filename, args.debug) File "format_sql/main.py", line 133, in handle_sql_file sql = format_sql(lines, debug) File "/Users/andrewstahlman/src/oss/format-sql/format_sql/shortcuts.py", line 20, in format_sql parsed = list(parse(tokens)) File "/Users/andrewstahlman/src/oss/format-sql/format_sql/parser.py", line 762, in parse for statement, unused_count in _parse(toks): File "/Users/andrewstahlman/src/oss/format-sql/format_sql/parser.py", line 755, in _parse raise InvalidSQL() format_sql.parser.InvalidSQL ➜ format-sql git:(no-overwrite-invalid) git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. ➜ format-sql git:(master) python format_sql/main.py /tmp/invalid.sql /tmp/invalid.sql

Traceback (most recent call last): File "format_sql/main.py", line 152, in main() File "format_sql/main.py", line 83, in main _write_back(filename, lines, args.dry_run) File "format_sql/main.py", line 148, in _write_back f.write(lines) TypeError: expected a string or other character buffer object ➜ format-sql git:(master) cat /tmp/invalid.sql ➜ format-sql git:(master)

astahlman avatar Dec 21 '16 18:12 astahlman

Coverage Status

Coverage increased (+0.3%) to 97.097% when pulling 781c643f722fc89e759d81be6f4904bc5a18096a on astahlman:no-overwrite-invalid into 0c93acbf5517ac8e05394621cc0507cac3d75e66 on paetzke:master.

coveralls avatar Dec 21 '16 18:12 coveralls