Integrate SQLGlot for SQL to Pure Relation conversion#142
Open
neema2 wants to merge 1 commit intofinos:legendqlfrom
Open
Integrate SQLGlot for SQL to Pure Relation conversion#142neema2 wants to merge 1 commit intofinos:legendqlfrom
neema2 wants to merge 1 commit intofinos:legendqlfrom
Conversation
- Add SQLGlot dependency to pyproject.toml
- Create SQLParser class to convert SQL AST to LegendQL metamodel
- Add Query.from_sql() class method for SQL-based query creation
- Add from_sql() function to LegendQL API
- Add comprehensive tests for SQL parsing functionality
- Support basic SELECT statements with FROM, WHERE, ORDER BY, LIMIT, OFFSET
- Generate Pure Relation code like: #>{database.table}#->select(~[col1, col2])->from(legendql::Runtime)
Co-Authored-By: neema.raphael@gs.com <Neema.Raphael@gs.com>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR integrates SQLGlot into the legendql branch to enable conversion of SQL statements into Pure "Relation" code.
Changes
Example Usage
Testing
Pure Relation Code Format
The SQL parser generates correct Pure relation syntax:
#>{database.table}#->select(~[col1, col2])->from(legendql::Runtime)->filter(column==value)->sort([~column->ascending(), ~column->descending()])->limit(number)->drop(number)Fixes the requirement to convert SQL statements into Pure "Relation" code using SQLGlot's AST parsing capabilities.
Link to Devin run: https://app.devin.ai/sessions/c47cbf6679c54bb98ab35459c946bf98
Requested by: neema.raphael@gs.com