-
Notifications
You must be signed in to change notification settings - Fork 11
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 UNION
#78
Comments
jaypipes
added a commit
that referenced
this issue
May 21, 2018
UNION JOIN is a rare join type that was supported in ANSI-92 SQL but subsequently removed from the SQL standard in ANSI SQL:2003. Issue #78
Merged
jaypipes
added a commit
that referenced
this issue
May 26, 2018
In supporting UNION/INTERSECT/EXCEPT, we need to segregate the parsing of query expression components from both table references and the select_statement_t. This patch adds specific parsers for the following query expression components: - <non_join_query_expression> - <non_join_query_term> - <non_join_query_primary> - <query_term> - <query_primary> - <joined_table> - <query_expression> The parsing of <query_specification> (which is basically the SELECT statement) is left for a followup patch, since that will need to reshape the parse_select() function substantially. Issue #78 Issue #111 Issue #112
jaypipes
added a commit
that referenced
this issue
May 26, 2018
The remaining pieces of the separate query component parsers were the parsing of the query_specification_t and table_expression_t. Next step is to convert parse_select() into a smaller parser that calles parse_query_specification() and checks terminal symbols that can come after a SELECT statement. Issue #78 Issue #111 Issue #112
jaypipes
added a commit
that referenced
this issue
May 29, 2018
query expressions, query terms and query primaries are all query components. They can either contains non-join elements or joined table elements. So, instead of having a query_expression_type, query_term_type and query_primary_type, let's just have a single query_component_type that can be used by all of the query component subclasses. Issue #78
jaypipes
added a commit
that referenced
this issue
May 29, 2018
Makes non_join_query_term_t a derivative of query_term_t and prepares the term parser for upcoming INTERSECTS processing. Issue #78
jaypipes
added a commit
that referenced
this issue
May 29, 2018
Makes non_join_query_primary_t derive properly from query_primary_t and make sure that parse_query_primary() properly attempts to parse a non_join_query_primary_t first, then a joined_table_t if that failed. Issue #78
jaypipes
added a commit
that referenced
this issue
Jun 13, 2018
query expressions, query terms and query primaries are all query components. They can either contains non-join elements or joined table elements. So, instead of having a query_expression_type, query_term_type and query_primary_type, let's just have a single query_component_type that can be used by all of the query component subclasses. Issue #78
jaypipes
added a commit
that referenced
this issue
Jun 13, 2018
Makes non_join_query_term_t a derivative of query_term_t and prepares the term parser for upcoming INTERSECTS processing. Issue #78
jaypipes
added a commit
that referenced
this issue
Jun 13, 2018
Makes non_join_query_primary_t derive properly from query_primary_t and make sure that parse_query_primary() properly attempts to parse a non_join_query_primary_t first, then a joined_table_t if that failed. Issue #78
jaypipes
added a commit
that referenced
this issue
Jun 14, 2018
Most of the patch is test file updates after doing the necessary breakout of the YAML printers for query_term_t and the various query_expression_t subtypes. We begin the process of parsing UNION and EXCEPT query expressions but as of now do not include functional tests for those expression subtypes. That will come in a following patch, since this is already getting a little long in the tooth. Issue #78
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Need to support the
UNION
operation which combines the results of two selectionsThe text was updated successfully, but these errors were encountered: