{"id":13695005,"url":"https://github.com/JavaScriptor/js-sql-parser","last_synced_at":"2025-05-03T04:31:31.132Z","repository":{"id":45104476,"uuid":"71266724","full_name":"JavaScriptor/js-sql-parser","owner":"JavaScriptor","description":"SQL(select) parser written with jison. parse SQL into abstract syntax tree(AST) and stringify back to SQL. sql grammar follows https://dev.mysql.com/doc/refman/5.7/en/select.html","archived":false,"fork":false,"pushed_at":"2024-03-21T03:00:58.000Z","size":157,"stargazers_count":255,"open_issues_count":18,"forks_count":47,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-20T16:39:52.106Z","etag":null,"topics":["abstract-syntax-tree","ast","javascript","jison","js","jsqlparser","mysql","sql-parser"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/JavaScriptor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","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":"2016-10-18T16:09:16.000Z","updated_at":"2025-04-04T09:30:40.000Z","dependencies_parsed_at":"2022-08-12T11:41:00.248Z","dependency_job_id":"29fec5f7-6bbf-4da4-a4ae-da69a14bea46","html_url":"https://github.com/JavaScriptor/js-sql-parser","commit_stats":{"total_commits":78,"total_committers":10,"mean_commits":7.8,"dds":"0.17948717948717952","last_synced_commit":"f2524a0684c472577658b3f25bb7d1fe9ffc9a25"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavaScriptor%2Fjs-sql-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavaScriptor%2Fjs-sql-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavaScriptor%2Fjs-sql-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavaScriptor%2Fjs-sql-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JavaScriptor","download_url":"https://codeload.github.com/JavaScriptor/js-sql-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252144564,"owners_count":21701434,"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":["abstract-syntax-tree","ast","javascript","jison","js","jsqlparser","mysql","sql-parser"],"created_at":"2024-08-02T17:01:56.303Z","updated_at":"2025-05-03T04:31:27.107Z","avatar_url":"https://github.com/JavaScriptor.png","language":"JavaScript","readme":"# js-sql-parser\n\n\u003e parse / stringify sql (select grammar) in js.\n\n[![Build Status][travis-image]][travis-url]\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n\nsql grammar follows https://dev.mysql.com/doc/refman/5.7/en/select.html\n\n## news\n\n- Unicode extended char support for column name or alias \u0026 Function call in `table_factor` since v1.6.0 [#58](https://github.com/JavaScriptor/js-sql-parser/pull/58), [#60](https://github.com/JavaScriptor/js-sql-parser/issues/60)\n- Support feature `PlaceHolder like ${param}` since v1.5.0 [#43](https://github.com/JavaScriptor/js-sql-parser/pull/43)\n- Fix bug `using ' \u0026 \" for column alias?` since v1.4.1 [#40](https://github.com/JavaScriptor/js-sql-parser/issues/40), [#44](https://github.com/JavaScriptor/js-sql-parser/issues/44)\n- Fix bug tableFactor alias since v1.3.0 [#34](https://github.com/JavaScriptor/js-sql-parser/issues/34)\n- Add support for \"`\" quoted alias since v1.2.2. [#33](https://github.com/JavaScriptor/js-sql-parser/issues/33)\n- Fix bug stringify keyword `having` since v1.2.1. [#29](https://github.com/JavaScriptor/js-sql-parser/issues/29)\n- Typo 'refrence' has been fixed to 'reference' since v1.2.0.\n\nfor more changes see [CHANGELOG](./CHANGELOG)\n\n## commonjs usage\n\n`npm install --save js-sql-parser`\n\n```js\nconst parser = require('js-sql-parser');\nconst ast = parser.parse('select * from dual');\n\nconsole.log(JSON.stringify(ast, null, 2));\n\nast.value.selectItems.value[0].value = 'foo';\nast.value.from.value[0].value.value.value = 'bar';\n\nconsole.log(parser.stringify(ast));\n// SELECT foo FROM bar\n```\n\n```js\n// placeholder test\nconst parser = require('js-sql-parser');\nconst ast = parser.parse('select ${a} as a');\n\nast['value']['selectItems']['value'][0]['value'] = \"'value'\";\nconsole.log(parser.stringify(ast));\n// SELECT 'value' AS a\n```\n\nNote: PlaceHolder is an `literal` value but not an `identifier`. Table_name / column_name / function_name are `identifier` thus should NOT be placed with placeholder.\n\n## script tag\n\n```js\n\u003cscript src=\"./dist/parser/sqlParser.js\"\u003e\u003cscript/\u003e\n\nvar sqlParser = window.sqlParser;\nvar ast = sqlParser.parse('select * from dual');\nvar sql = sqlParser.stringify(ast);\n```\n\n## AMD supported\n\n...\n\n## unsupported grammar currently\n\n- Hexadecimal Literals as x'01af' X'01af', but 0x01af is supported.\n- keyword COLLATE.\n- parammarker: keyword PREPARE / EXECUTE / DEALLOCATE\n- variable: keyword SET / CREATE PROCEDURE / CREATE FUNCTION\n- identifier expr: ODBC escape syntax\n- matchexpr: Full-Text Search Functions. // to support\n- intervalexpr: Date INTERVAL keyword.   // to support\n- into outfile: INTO OUTFILE keyword.    // to support\n\n## Build\n\n- Run `npm run build` to build the distributable.\n\n## LICENSE\n\nMIT\n\n[travis-image]: https://api.travis-ci.org/JavaScriptor/js-sql-parser.svg\n[travis-url]: https://travis-ci.org/JavaScriptor/js-sql-parser\n[npm-image]: https://img.shields.io/npm/v/js-sql-parser.svg\n[npm-url]: https://npmjs.org/package/js-sql-parser\n[downloads-image]: https://img.shields.io/npm/dm/js-sql-parser.svg\n[downloads-url]: https://npmjs.org/package/js-sql-parser\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJavaScriptor%2Fjs-sql-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJavaScriptor%2Fjs-sql-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJavaScriptor%2Fjs-sql-parser/lists"}