Skip to content

fix(import): improve SQL parsing compatibility by sanitizing input#853

Open
Gautam-Bharadwaj wants to merge 3 commits intodrawdb-io:mainfrom
Gautam-Bharadwaj:main
Open

fix(import): improve SQL parsing compatibility by sanitizing input#853
Gautam-Bharadwaj wants to merge 3 commits intodrawdb-io:mainfrom
Gautam-Bharadwaj:main

Conversation

@Gautam-Bharadwaj
Copy link


#PR- #852

Description
This PR addresses the issue where importing SQL files (mainly PostgreSQL dumps generated by pg_dump) fails with syntax errors. The root cause is the strictness of the node-sql-parser library, which crashes when encountering valid dump artefacts like meta-commands (SET statement_timeout...) or complex comments.

We have introduced a Sanitisation Layer to strip these non-structural elements before parsing.


Before vs After

Before

The raw SQL string from the import modal was passed directly to the parser.

Screenshot 2026-01-29 at 12 23 29 AM

Result: Syntax Error (Parser chokes on SET and sometimes --).


After

The SQL string is processed by sanitizeSQL before parsing.

Screenshot 2026-01-29 at 12 24 36 AM

After Sanitization (Internal):

Screenshot 2026-01-29 at 12 24 56 AM

Result: Success (Parser sees specialized DDL only).


Verification

Verified that strings containing comment markers (e.g. '-- data') are preserved correctly.
Verified that SET commands at the top of files are removed.
Verified that block comments /* ... */ are removed.

- Added sanitizeSQL utility to strip comments and unsupported meta-commands (SET, SELECT, CREATE EXTENSION)
- Integrated sanitization in Import Modal to fix crashes with pg_dump files
- Preserved strings containing comment-like characters
@vercel
Copy link

vercel bot commented Jan 28, 2026

@Gautam-Bharadwaj is attempting to deploy a commit to the dottle's projects Team on Vercel.

A member of the Team first needs to authorize it.

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.

1 participant