{"library":"pgsanity","title":"PgSanity","description":"PgSanity is a Python utility that checks the syntax of PostgreSQL SQL files. It operates by leveraging the `ecpg` command-line tool, which is part of the PostgreSQL client development tools. This allows `pgsanity` to use the exact same parser as PostgreSQL to identify SQL syntax errors, making it a reliable tool for quality assurance and testing of SQL scripts. The current version is 0.3.0, and it maintains a regular release cadence.","language":"python","status":"active","last_verified":"Mon Apr 13","install":{"commands":["pip install pgsanity"],"cli":{"name":"pgsanity","version":"usage: pgsanity [-h] [--add-semicolon] [files ...]"}},"imports":[],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"# Check a single SQL file\npip install pgsanity\n# Create a dummy SQL file\nwith open('test.sql', 'w') as f:\n    f.write('SELECT 1 FROM my_table;\\n')\n    f.write('INSERT INTO another_table (id) VALUES (10);\\n')\n\nimport subprocess\n\n# Run pgsanity on the file\nresult = subprocess.run(['pgsanity', 'test.sql'], capture_output=True, text=True)\nprint(f\"Exit Code: {result.returncode}\")\nprint(f\"STDOUT:\\n{result.stdout}\")\nprint(f\"STDERR:\\n{result.stderr}\")\n\n# Example of invalid SQL\nwith open('invalid.sql', 'w') as f:\n    f.write('SELECT * FROM non_existent_table WHERE bad_syntax;\\n')\n\nresult_invalid = subprocess.run(['pgsanity', 'invalid.sql'], capture_output=True, text=True)\nprint(f\"\\nExit Code (invalid): {result_invalid.returncode}\")\nprint(f\"STDOUT (invalid):\\n{result_invalid.stdout}\")\nprint(f\"STDERR (invalid):\\n{result_invalid.stderr}\")\n\n# Check SQL from stdin\nsql_to_check = 'SELECT current_timestamp;'\nresult_stdin = subprocess.run(['pgsanity'], input=sql_to_check, capture_output=True, text=True)\nprint(f\"\\nExit Code (stdin): {result_stdin.returncode}\")\nprint(f\"STDOUT (stdin):\\n{result_stdin.stdout}\")\nprint(f\"STDERR (stdin):\\n{result_stdin.stderr}\")","lang":"python","description":"PgSanity is primarily a command-line tool. The quickstart demonstrates how to install it and then use the `pgsanity` command to check SQL syntax from a file or directly from standard input. A successful check returns an exit code of 0, while errors result in a non-zero exit code and error messages on stderr.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}