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 UNION #78

Open
jaypipes opened this issue Apr 1, 2018 · 0 comments
Open

Support UNION #78

jaypipes opened this issue Apr 1, 2018 · 0 comments
Labels
Milestone

Comments

@jaypipes
Copy link
Owner

jaypipes commented Apr 1, 2018

Need to support the UNION operation which combines the results of two selections

@jaypipes jaypipes added the DML label Apr 1, 2018
@jaypipes jaypipes added this to the 0.2 milestone Apr 14, 2018
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
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
Labels
Projects
None yet
Development

No branches or pull requests

1 participant