Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Values Query at ASTBuilder #1041

Merged
merged 30 commits into from
Feb 11, 2023
Merged

Support Values Query at ASTBuilder #1041

merged 30 commits into from
Feb 11, 2023

Conversation

devgony
Copy link
Collaborator

@devgony devgony commented Dec 9, 2022

Goal

Currently, ASTBuilder does not support Values Query yet.
This PR will support Values Query at ASTBuilder

let actual = values(vec!["1, 'a'", "2, 'b'"])
    .order_by(vec!["column1 desc"])
    .build();
let expected = "VALUES(1, 'a'), (2, 'b') ORDER BY column1 desc";

Todo

  • implement entrypoint values()
  • implement build
  • look for the way to unify fn build with previous codes
  • implement values.{order_by, limit, offset}

Next

  • Support column alias for SELECT Query like SELECT * FROM Table AS T (C1, C2..) in core
  • Support column alias for alias_as in AstBuilder

@devgony devgony added the enhancement New feature or request label Dec 9, 2022
@devgony devgony self-assigned this Dec 9, 2022
@coveralls
Copy link

coveralls commented Dec 9, 2022

Pull Request Test Coverage Report for Build 4150997881

  • 219 of 224 (97.77%) changed or added relevant lines in 16 files are covered.
  • 6 unchanged lines in 1 file lost coverage.
  • Overall coverage decreased (-0.03%) to 98.613%

Changes Missing Coverage Covered Lines Changed/Added Lines %
test-suite/src/ast_builder/values.rs 59 64 92.19%
Files with Coverage Reduction New Missed Lines %
core/src/executor/alter/table.rs 6 94.92%
Totals Coverage Status
Change from base Build 4149756888: -0.03%
Covered Lines: 38531
Relevant Lines: 39073

💛 - Coveralls

@devgony devgony marked this pull request as ready for review December 13, 2022 11:13
core/src/ast_builder/select/filter.rs Outdated Show resolved Hide resolved
core/src/ast_builder/select/limit.rs Outdated Show resolved Hide resolved
Copy link
Member

@panarch panarch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome!! All looks great 👍
Thanks a lot!

@panarch panarch merged commit 6f08c27 into gluesql:main Feb 11, 2023
devgony added a commit to devgony/gluesql that referenced this pull request Mar 6, 2023
Currently, ASTBuilder does not support Values Query yet.
This PR supports Values Query in ASTBuilder

e.g.
let actual = values(vec!["1, 'a'", "2, 'b'"])
    .order_by(vec!["column1 desc"])
    .build();
let expected = "VALUES(1, 'a'), (2, 'b') ORDER BY column1 desc";
devgony added a commit to devgony/gluesql that referenced this pull request Mar 6, 2023
Remove Store trait related cfg features, (gluesql#1091)

Enable all by default.

Compile time feature control causes too much management cost.
We already have test cases in test-suite splitted based on store trait features.

Support `values` query in AST builder (gluesql#1041)

Currently, ASTBuilder does not support Values Query yet.
This PR supports Values Query in ASTBuilder

e.g.
let actual = values(vec!["1, 'a'", "2, 'b'"])
    .order_by(vec!["column1 desc"])
    .build();
let expected = "VALUES(1, 'a'), (2, 'b') ORDER BY column1 desc";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants