Closed serebro closed 3 years ago
try the new version, see if that fixes it
The last update 2021-02-1
unfortunately does not solve the problem, same error.
I didn't look closely enough at your problem. This is actually working as intended, inputScan.getJoinExpr is nullptr (because it is not specifed in the query):
bazel build //zetasql/tools/execute_query:execute_query
bazel-bin/zetasql/tools/execute_query/execute_query "SELECT * FROM (SELECT 1 AS a), (SELECT 2 AS b)" --mode=resolve
QueryStmt
+-output_column_list=
| +-$subquery1.a#1 AS a [INT64]
| +-$subquery2.b#2 AS b [INT64]
+-query=
+-ProjectScan
+-column_list=[$subquery1.a#1, $subquery2.b#2]
+-input_scan=
+-JoinScan
+-column_list=[$subquery1.a#1, $subquery2.b#2]
+-left_scan=
| +-ProjectScan
| +-column_list=[$subquery1.a#1]
| +-expr_list=
| | +-a#1 := Literal(type=INT64, value=1)
| +-input_scan=
| +-SingleRowScan
+-right_scan=
+-ProjectScan
+-column_list=[$subquery2.b#2]
+-expr_list=
| +-b#2 := Literal(type=INT64, value=2)
+-input_scan=
+-SingleRowScan
If we modify it to include a join...on clause, we can see the join_expr is now specified:
```bazel-bin/zetasql/tools/execute_query/execute_query "SELECT * FROM (SELECT 1 AS a) join (SELECT 2 AS b) on true" --mode=resolve
QueryStmt
+-output_column_list=
| +-$subquery1.a#1 AS a [INT64]
| +-$subquery2.b#2 AS b [INT64]
+-query=
+-ProjectScan
+-column_list=[$subquery1.a#1, $subquery2.b#2]
+-input_scan=
+-JoinScan
+-column_list=[$subquery1.a#1, $subquery2.b#2]
+-left_scan=
| +-ProjectScan
| +-column_list=[$subquery1.a#1]
| +-expr_list=
| | +-a#1 := Literal(type=INT64, value=1)
| +-input_scan=
| +-SingleRowScan
+-right_scan=
| +-ProjectScan
| +-column_list=[$subquery2.b#2]
| +-expr_list=
| | +-b#2 := Literal(type=INT64, value=2)
| +-input_scan=
| +-SingleRowScan
+-join_expr=
+-Literal(type=BOOL, value=true)
@matthewcbrown thank you very much. I have checked it again, it works.
Trying to rebuild ResolvedJoinScan from the query
SELECT * FROM (SELECT 1 AS a), (SELECT 2 AS b)
I receive the error `joinExpr must not be null", similar to #61.A simplified example to reproduce: