{"id":19538010,"url":"https://github.com/geoffsmith82/delphisqlparser","last_synced_at":"2026-03-03T15:31:18.984Z","repository":{"id":61916477,"uuid":"263618220","full_name":"geoffsmith82/DelphiSqlParser","owner":"geoffsmith82","description":"Project to create SQL Parser","archived":false,"fork":false,"pushed_at":"2024-07-27T06:59:45.000Z","size":213,"stargazers_count":15,"open_issues_count":0,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-01-08T18:15:49.281Z","etag":null,"topics":["injectionattack","parser","security","sql","sqlast","sqlinjection","sqlparser","sqlsyntaxhilighter"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geoffsmith82.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-13T12:05:37.000Z","updated_at":"2024-12-02T03:24:52.000Z","dependencies_parsed_at":"2024-11-11T02:40:36.661Z","dependency_job_id":null,"html_url":"https://github.com/geoffsmith82/DelphiSqlParser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffsmith82%2FDelphiSqlParser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffsmith82%2FDelphiSqlParser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffsmith82%2FDelphiSqlParser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffsmith82%2FDelphiSqlParser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geoffsmith82","download_url":"https://codeload.github.com/geoffsmith82/DelphiSqlParser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240793088,"owners_count":19858597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["injectionattack","parser","security","sql","sqlast","sqlinjection","sqlparser","sqlsyntaxhilighter"],"created_at":"2024-11-11T02:30:30.319Z","updated_at":"2026-03-03T15:31:18.920Z","avatar_url":"https://github.com/geoffsmith82.png","language":"Pascal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DelphiSqlParser\n## Project Goals\nI have listed some goals of this project below.  \n### Create a SQL Parser in Delphi\n  - To create a SQL parser in Delphi that can be used to create an AST of the SQL\n  - Ability to create a Syntax highlighter for SQL\n### Ability to prevent SQL injection attacks \n  - by forcing the use of parameters by preventing the use of constant values in SQL\n  - detecting multiple statements that are going to be executed together\n  - detecting always true / always false statements\n  - detecting statements like `select 1` in a where restriction\n### SQL Manipulation\n  - Do equivilant of SQL refactoring (renaming various things like table names,field names etc)\n  - Convert between different dialects of SQL\n\t\n## Project Status\n\n  Currently the project is in a very early stage although, it can decode fair number of the simple SQL commands although for anything complicated it probably can't yet handle.\n  - The project can currently decode 69 out of the 70 test SQL statements.\n  - The project can compare what the expected AST is to what the decoded AST is to ensure the parser is working properly\n  - At the moment no attempt to limit SQL dialect type has been implemented.\n  - Initial testing of `1 = 1` like conditions for detecting SQL Injection attacks\n  - Initial testing of `select 1` like conditions in where clauses\n  - Detection of constant value anywhere in the SQL statement\n  - Add check for multiple statements in SQL text","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeoffsmith82%2Fdelphisqlparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeoffsmith82%2Fdelphisqlparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeoffsmith82%2Fdelphisqlparser/lists"}