blob: e86cb2fef020689c3d7a03621ceada093d40a28f [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
SELECT * FROM a
UNION ALL
SELECT * FROM b;
--
SetOperationStatement
+-set_operation_query=SetOperation[set_operation_type=UnionAll]
+-children=
+-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=a]
+-SetOperation[set_operation_type=Select]
+-children=
+-Select
+-select_clause=SelectStar
+-from_clause=
+-TableReference[table=b]
==
# Currently does not support INTERSECT ALL.
SELECT * FROM a
INTERSECT ALL
SELECT * FROM b;
--
ERROR: syntax error (2 : 11)
INTERSECT ALL
^
==
SELECT * FROM a
UNION
SELECT * FROM b
UNION
SELECT * FROM c;
--
SetOperationStatement
+-set_operation_query=SetOperation[set_operation_type=Union]
+-children=
+-SetOperation[set_operation_type=Union]
| +-children=
| +-SetOperation[set_operation_type=Select]
| | +-children=
| | +-Select
| | +-select_clause=SelectStar
| | +-from_clause=
| | +-TableReference[table=a]
| +-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=b]
+-SetOperation[set_operation_type=Select]
+-children=
+-Select
+-select_clause=SelectStar
+-from_clause=
+-TableReference[table=c]
==
SELECT * FROM a
INTERSECT
SELECT * FROM b
UNION
SELECT * FROM c
INTERSECT
SELECT * FROM d;
--
SetOperationStatement
+-set_operation_query=SetOperation[set_operation_type=Union]
+-children=
+-SetOperation[set_operation_type=Intersect]
| +-children=
| +-SetOperation[set_operation_type=Select]
| | +-children=
| | +-Select
| | +-select_clause=SelectStar
| | +-from_clause=
| | +-TableReference[table=a]
| +-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=b]
+-SetOperation[set_operation_type=Intersect]
+-children=
+-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=c]
+-SetOperation[set_operation_type=Select]
+-children=
+-Select
+-select_clause=SelectStar
+-from_clause=
+-TableReference[table=d]
==
# Currently does not support using bracket to change order,
# Instead, use a subquery to change order of set operations.
SELECT * FROM a
INTERSECT
(SELECT * FROM a
UNION
SELECT * FROM b);
--
ERROR: syntax error (3 : 1)
(SELECT * FROM a
^
==
SELECT * FROM a
INTERSECT
SELECT * FROM
(SELECT * FROM a
UNION
SELECT * FROM b
) AS temp;
--
SetOperationStatement
+-set_operation_query=SetOperation[set_operation_type=Intersect]
+-children=
+-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=a]
+-SetOperation[set_operation_type=Select]
+-children=
+-Select
+-select_clause=SelectStar
+-from_clause=
+-SubqueryTable
+-table_signature=TableSignature[table_alias=temp]
+-SubqueryExpression
+-SetOperation[set_operation_type=Union]
+-children=
+-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=a]
+-SetOperation[set_operation_type=Select]
+-children=
+-Select
+-select_clause=SelectStar
+-from_clause=
+-TableReference[table=b]
==
SELECT * FROM
(SELECT * FROM a
UNION ALL
SELECT * FROM b
) AS temp1
INTERSECT
SELECT * FROM
(SELECT * FROM a
UNION
SELECT * FROM b
) AS temp2;
--
SetOperationStatement
+-set_operation_query=SetOperation[set_operation_type=Intersect]
+-children=
+-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-SubqueryTable
| +-table_signature=TableSignature[table_alias=temp1]
| +-SubqueryExpression
| +-SetOperation[set_operation_type=UnionAll]
| +-children=
| +-SetOperation[set_operation_type=Select]
| | +-children=
| | +-Select
| | +-select_clause=SelectStar
| | +-from_clause=
| | +-TableReference[table=a]
| +-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=b]
+-SetOperation[set_operation_type=Select]
+-children=
+-Select
+-select_clause=SelectStar
+-from_clause=
+-SubqueryTable
+-table_signature=TableSignature[table_alias=temp2]
+-SubqueryExpression
+-SetOperation[set_operation_type=Union]
+-children=
+-SetOperation[set_operation_type=Select]
| +-children=
| +-Select
| +-select_clause=SelectStar
| +-from_clause=
| +-TableReference[table=a]
+-SetOperation[set_operation_type=Select]
+-children=
+-Select
+-select_clause=SelectStar
+-from_clause=
+-TableReference[table=b]
==