| -- Automatically generated by SQLQueryTestSuite |
| -- !query |
| CREATE OR REPLACE TEMPORARY VIEW INT2_TBL(f1) AS VALUES |
| (smallint(trim('0 '))), |
| (smallint(trim(' 1234 '))), |
| (smallint(trim(' -1234'))), |
| (smallint('32767')), |
| (smallint('-32767')) |
| -- !query analysis |
| CreateViewCommand `INT2_TBL`, [(f1,None)], VALUES |
| (smallint(trim('0 '))), |
| (smallint(trim(' 1234 '))), |
| (smallint(trim(' -1234'))), |
| (smallint('32767')), |
| (smallint('-32767')), false, true, LocalTempView, true |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| CREATE OR REPLACE TEMPORARY VIEW INT4_TBL AS SELECT * FROM |
| (VALUES (0), (123456), (-123456), (2147483647), (-2147483647)) |
| AS v(f1) |
| -- !query analysis |
| CreateViewCommand `INT4_TBL`, SELECT * FROM |
| (VALUES (0), (123456), (-123456), (2147483647), (-2147483647)) |
| AS v(f1), false, true, LocalTempView, true |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| CREATE OR REPLACE TEMPORARY VIEW INT8_TBL AS SELECT * FROM |
| (VALUES |
| (123, 456), |
| (123, 4567890123456789), |
| (4567890123456789, 123), |
| (4567890123456789, 4567890123456789), |
| (4567890123456789, -4567890123456789)) |
| AS v(q1, q2) |
| -- !query analysis |
| CreateViewCommand `INT8_TBL`, SELECT * FROM |
| (VALUES |
| (123, 456), |
| (123, 4567890123456789), |
| (4567890123456789, 123), |
| (4567890123456789, 4567890123456789), |
| (4567890123456789, -4567890123456789)) |
| AS v(q1, q2), false, true, LocalTempView, true |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| CREATE OR REPLACE TEMPORARY VIEW FLOAT8_TBL AS SELECT * FROM |
| (VALUES (0.0), (1004.30), (-34.84), |
| (cast('1.2345678901234e+200' as double)), (cast('1.2345678901234e-200' as double))) |
| AS v(f1) |
| -- !query analysis |
| CreateViewCommand `FLOAT8_TBL`, SELECT * FROM |
| (VALUES (0.0), (1004.30), (-34.84), |
| (cast('1.2345678901234e+200' as double)), (cast('1.2345678901234e-200' as double))) |
| AS v(f1), false, true, LocalTempView, true |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| CREATE OR REPLACE TEMPORARY VIEW TEXT_TBL AS SELECT * FROM |
| (VALUES ('doh!'), ('hi de ho neighbor')) |
| AS v(f1) |
| -- !query analysis |
| CreateViewCommand `TEXT_TBL`, SELECT * FROM |
| (VALUES ('doh!'), ('hi de ho neighbor')) |
| AS v(f1), false, true, LocalTempView, true |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| CREATE OR REPLACE TEMPORARY VIEW tenk2 AS SELECT * FROM tenk1 |
| -- !query analysis |
| CreateViewCommand `tenk2`, SELECT * FROM tenk1, false, true, LocalTempView, true |
| +- Project [unique1#x, unique2#x, two#x, four#x, ten#x, twenty#x, hundred#x, thousand#x, twothousand#x, fivethous#x, tenthous#x, odd#x, even#x, stringu1#x, stringu2#x, string4#x] |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| CREATE TABLE J1_TBL ( |
| i integer, |
| j integer, |
| t string |
| ) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`J1_TBL`, false |
| |
| |
| -- !query |
| CREATE TABLE J2_TBL ( |
| i integer, |
| k integer |
| ) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`J2_TBL`, false |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (1, 4, 'one') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (2, 3, 'two') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (3, 2, 'three') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (4, 1, 'four') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (5, 0, 'five') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (6, 6, 'six') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (7, 7, 'seven') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (8, 8, 'eight') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (0, NULL, 'zero') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (NULL, NULL, 'null') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J1_TBL VALUES (NULL, 0, 'zero') |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1_tbl], Append, `spark_catalog`.`default`.`j1_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1_tbl), [i, j, t] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS j#x, cast(col3#x as string) AS t#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (1, -1) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (2, 2) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (3, -3) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (2, 4) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (5, -5) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (5, -5) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (0, NULL) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (NULL, NULL) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO J2_TBL VALUES (NULL, 0) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2_tbl, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2_tbl], Append, `spark_catalog`.`default`.`j2_tbl`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2_tbl), [i, k] |
| +- Project [cast(col1#x as int) AS i#x, cast(col2#x as int) AS k#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i), udf(j), udf(t) |
| FROM J1_TBL AS tx |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x] |
| +- SubqueryAlias tx |
| +- SubqueryAlias spark_catalog.default.j1_tbl |
| +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| |
| |
| -- !query |
| SELECT udf(udf('')) AS `xxx`, udf(udf(i)), udf(j), udf(t) |
| FROM J1_TBL tx |
| -- !query analysis |
| Project [cast(udf(cast(cast(udf(cast( as string)) as string) as string)) as string) AS xxx#x, cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) AS udf(udf(i))#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x] |
| +- SubqueryAlias tx |
| +- SubqueryAlias spark_catalog.default.j1_tbl |
| +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, a, udf(udf(b)), c |
| FROM J1_TBL AS t1 (a, b, c) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, a#x, cast(udf(cast(cast(udf(cast(b#x as string)) as int) as string)) as int) AS udf(udf(b))#x, c#x] |
| +- SubqueryAlias t1 |
| +- Project [i#x AS a#x, j#x AS b#x, t#x AS c#x] |
| +- SubqueryAlias spark_catalog.default.j1_tbl |
| +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(a), udf(b), udf(udf(c)) |
| FROM J1_TBL t1 (a, b, c) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(a#x as string)) as int) AS udf(a)#x, cast(udf(cast(b#x as string)) as int) AS udf(b)#x, cast(udf(cast(cast(udf(cast(c#x as string)) as string) as string)) as string) AS udf(udf(c))#x] |
| +- SubqueryAlias t1 |
| +- Project [i#x AS a#x, j#x AS b#x, t#x AS c#x] |
| +- SubqueryAlias spark_catalog.default.j1_tbl |
| +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(a), b, udf(c), udf(d), e |
| FROM J1_TBL t1 (a, b, c), J2_TBL t2 (d, e) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(a#x as string)) as int) AS udf(a)#x, b#x, cast(udf(cast(c#x as string)) as string) AS udf(c)#x, cast(udf(cast(d#x as string)) as int) AS udf(d)#x, e#x] |
| +- Join Inner |
| :- SubqueryAlias t1 |
| : +- Project [i#x AS a#x, j#x AS b#x, t#x AS c#x] |
| : +- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias t2 |
| +- Project [i#x AS d#x, k#x AS e#x] |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, * |
| FROM J1_TBL CROSS JOIN J2_TBL |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, i#x, j#x, t#x, i#x, k#x] |
| +- Join Cross |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i) AS i, udf(k), udf(t) AS t |
| FROM J1_TBL CROSS JOIN J2_TBL |
| -- !query analysis |
| org.apache.spark.sql.AnalysisException |
| { |
| "errorClass" : "AMBIGUOUS_REFERENCE", |
| "sqlState" : "42704", |
| "messageParameters" : { |
| "name" : "`i`", |
| "referenceNames" : "[`spark_catalog`.`default`.`j1_tbl`.`i`, `spark_catalog`.`default`.`j2_tbl`.`i`]" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 30, |
| "stopIndex" : 30, |
| "fragment" : "i" |
| } ] |
| } |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(t1.i) AS i, udf(k), udf(t) |
| FROM J1_TBL t1 CROSS JOIN J2_TBL t2 |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS i#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x] |
| +- Join Cross |
| :- SubqueryAlias t1 |
| : +- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias t2 |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf(udf('')) AS `xxx`, udf(udf(ii)) AS ii, udf(udf(tt)) AS tt, udf(udf(kk)) |
| FROM (J1_TBL CROSS JOIN J2_TBL) |
| AS tx (ii, jj, tt, ii2, kk) |
| -- !query analysis |
| Project [cast(udf(cast(cast(udf(cast( as string)) as string) as string)) as string) AS xxx#x, cast(udf(cast(cast(udf(cast(ii#x as string)) as int) as string)) as int) AS ii#x, cast(udf(cast(cast(udf(cast(tt#x as string)) as string) as string)) as string) AS tt#x, cast(udf(cast(cast(udf(cast(kk#x as string)) as int) as string)) as int) AS udf(udf(kk))#x] |
| +- SubqueryAlias tx |
| +- Project [i#x AS ii#x, j#x AS jj#x, t#x AS tt#x, i#x AS ii2#x, k#x AS kk#x] |
| +- Join Cross |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(udf(j1_tbl.i)), udf(j), udf(t), udf(a.i), udf(a.k), udf(b.i), udf(b.k) |
| FROM J1_TBL CROSS JOIN J2_TBL a CROSS JOIN J2_TBL b |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) AS udf(udf(i))#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Join Cross |
| :- Join Cross |
| : :- SubqueryAlias spark_catalog.default.j1_tbl |
| : : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| : +- SubqueryAlias a |
| : +- SubqueryAlias spark_catalog.default.j2_tbl |
| : +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| +- SubqueryAlias b |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i) AS i, udf(j), udf(t) AS t, udf(k) |
| FROM J1_TBL INNER JOIN J2_TBL USING (i) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS i#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS t#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join Inner, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf(udf('')) AS `xxx`, udf(i), udf(j) AS j, udf(t), udf(k) AS k |
| FROM J1_TBL JOIN J2_TBL USING (i) |
| -- !query analysis |
| Project [cast(udf(cast(cast(udf(cast( as string)) as string) as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS j#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(k#x as string)) as int) AS k#x] |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join Inner, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, * |
| FROM J1_TBL t1 (a, b, c) JOIN J2_TBL t2 (a, d) USING (a) |
| ORDER BY udf(udf(a)), udf(d) |
| -- !query analysis |
| Sort [cast(udf(cast(cast(udf(cast(a#x as string)) as int) as string)) as int) ASC NULLS FIRST, cast(udf(cast(d#x as string)) as int) ASC NULLS FIRST], true |
| +- Project [cast(udf(cast( as string)) as string) AS xxx#x, a#x, b#x, c#x, d#x] |
| +- Project [a#x, b#x, c#x, d#x] |
| +- Join Inner, (a#x = a#x) |
| :- SubqueryAlias t1 |
| : +- Project [i#x AS a#x, j#x AS b#x, t#x AS c#x] |
| : +- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias t2 |
| +- Project [i#x AS a#x, k#x AS d#x] |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf(udf('')) AS `xxx`, udf(i), udf(j), udf(t), udf(k) |
| FROM J1_TBL NATURAL JOIN J2_TBL |
| -- !query analysis |
| Project [cast(udf(cast(cast(udf(cast( as string)) as string) as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join Inner, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(udf(udf(a))) AS a, udf(b), udf(c), udf(d) |
| FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (a, d) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(cast(udf(cast(cast(udf(cast(a#x as string)) as int) as string)) as int) as string)) as int) AS a#x, cast(udf(cast(b#x as string)) as int) AS udf(b)#x, cast(udf(cast(c#x as string)) as string) AS udf(c)#x, cast(udf(cast(d#x as string)) as int) AS udf(d)#x] |
| +- Project [a#x, b#x, c#x, d#x] |
| +- Join Inner, (a#x = a#x) |
| :- SubqueryAlias t1 |
| : +- Project [i#x AS a#x, j#x AS b#x, t#x AS c#x] |
| : +- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias t2 |
| +- Project [i#x AS a#x, k#x AS d#x] |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(udf(a)), udf(udf(b)), udf(udf(c)) AS c, udf(udf(udf(d))) AS d |
| FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (d, a) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(cast(udf(cast(a#x as string)) as int) as string)) as int) AS udf(udf(a))#x, cast(udf(cast(cast(udf(cast(b#x as string)) as int) as string)) as int) AS udf(udf(b))#x, cast(udf(cast(cast(udf(cast(c#x as string)) as string) as string)) as string) AS c#x, cast(udf(cast(cast(udf(cast(cast(udf(cast(d#x as string)) as int) as string)) as int) as string)) as int) AS d#x] |
| +- Project [a#x, b#x, c#x, d#x] |
| +- Join Inner, (a#x = a#x) |
| :- SubqueryAlias t1 |
| : +- Project [i#x AS a#x, j#x AS b#x, t#x AS c#x] |
| : +- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias t2 |
| +- Project [i#x AS d#x, k#x AS a#x] |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(J1_TBL.i), udf(udf(J1_TBL.j)), udf(J1_TBL.t), udf(J2_TBL.i), udf(J2_TBL.k) |
| FROM J1_TBL JOIN J2_TBL ON (udf(J1_TBL.i) = J2_TBL.i) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(cast(udf(cast(j#x as string)) as int) as string)) as int) AS udf(udf(j))#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Join Inner, (cast(udf(cast(i#x as string)) as int) = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(udf(J1_TBL.i)), udf(udf(J1_TBL.j)), udf(udf(J1_TBL.t)), J2_TBL.i, J2_TBL.k |
| FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i = udf(J2_TBL.k)) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) AS udf(udf(i))#x, cast(udf(cast(cast(udf(cast(j#x as string)) as int) as string)) as int) AS udf(udf(j))#x, cast(udf(cast(cast(udf(cast(t#x as string)) as string) as string)) as string) AS udf(udf(t))#x, i#x, k#x] |
| +- Join Inner, (i#x = cast(udf(cast(k#x as string)) as int)) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(J1_TBL.i), udf(J1_TBL.j), udf(J1_TBL.t), udf(J2_TBL.i), udf(J2_TBL.k) |
| FROM J1_TBL JOIN J2_TBL ON (udf(J1_TBL.i) <= udf(udf(J2_TBL.k))) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Join Inner, (cast(udf(cast(i#x as string)) as int) <= cast(udf(cast(cast(udf(cast(k#x as string)) as int) as string)) as int)) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf(udf('')) AS `xxx`, udf(i), udf(j), udf(t), udf(k) |
| FROM J1_TBL LEFT OUTER JOIN J2_TBL USING (i) |
| ORDER BY udf(udf(i)), udf(k), udf(t) |
| -- !query analysis |
| Project [xxx#x, udf(i)#x, udf(j)#x, udf(t)#x, udf(k)#x] |
| +- Sort [cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) ASC NULLS FIRST, cast(udf(cast(k#x as string)) as int) ASC NULLS FIRST, cast(udf(cast(t#x as string)) as string) ASC NULLS FIRST], true |
| +- Project [cast(udf(cast(cast(udf(cast( as string)) as string) as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x, i#x, k#x, t#x] |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join LeftOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i), udf(j), udf(t), udf(k) |
| FROM J1_TBL LEFT JOIN J2_TBL USING (i) |
| ORDER BY udf(i), udf(udf(k)), udf(t) |
| -- !query analysis |
| Project [xxx#x, udf(i)#x, udf(j)#x, udf(t)#x, udf(k)#x] |
| +- Sort [cast(udf(cast(i#x as string)) as int) ASC NULLS FIRST, cast(udf(cast(cast(udf(cast(k#x as string)) as int) as string)) as int) ASC NULLS FIRST, cast(udf(cast(t#x as string)) as string) ASC NULLS FIRST], true |
| +- Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x, i#x, k#x, t#x] |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join LeftOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(udf(i)), udf(j), udf(t), udf(k) |
| FROM J1_TBL RIGHT OUTER JOIN J2_TBL USING (i) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) AS udf(udf(i))#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join RightOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i), udf(udf(j)), udf(t), udf(k) |
| FROM J1_TBL RIGHT JOIN J2_TBL USING (i) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(cast(udf(cast(j#x as string)) as int) as string)) as int) AS udf(udf(j))#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join RightOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i), udf(j), udf(udf(t)), udf(k) |
| FROM J1_TBL FULL OUTER JOIN J2_TBL USING (i) |
| ORDER BY udf(udf(i)), udf(k), udf(t) |
| -- !query analysis |
| Project [xxx#x, udf(i)#x, udf(j)#x, udf(udf(t))#x, udf(k)#x] |
| +- Sort [cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) ASC NULLS FIRST, cast(udf(cast(k#x as string)) as int) ASC NULLS FIRST, cast(udf(cast(t#x as string)) as string) ASC NULLS FIRST], true |
| +- Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(cast(udf(cast(t#x as string)) as string) as string)) as string) AS udf(udf(t))#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x, i#x, k#x, t#x] |
| +- Project [coalesce(i#x, i#x) AS i#x, j#x, t#x, k#x] |
| +- Join FullOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i), udf(j), t, udf(udf(k)) |
| FROM J1_TBL FULL JOIN J2_TBL USING (i) |
| ORDER BY udf(udf(i)), udf(k), udf(udf(t)) |
| -- !query analysis |
| Project [xxx#x, udf(i)#x, udf(j)#x, t#x, udf(udf(k))#x] |
| +- Sort [cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) ASC NULLS FIRST, cast(udf(cast(k#x as string)) as int) ASC NULLS FIRST, cast(udf(cast(cast(udf(cast(t#x as string)) as string) as string)) as string) ASC NULLS FIRST], true |
| +- Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, t#x, cast(udf(cast(cast(udf(cast(k#x as string)) as int) as string)) as int) AS udf(udf(k))#x, i#x, k#x] |
| +- Project [coalesce(i#x, i#x) AS i#x, j#x, t#x, k#x] |
| +- Join FullOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i), udf(j), udf(t), udf(udf(k)) |
| FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (udf(k) = 1) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(cast(udf(cast(k#x as string)) as int) as string)) as int) AS udf(udf(k))#x] |
| +- Filter (cast(udf(cast(k#x as string)) as int) = 1) |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join LeftOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| SELECT udf('') AS `xxx`, udf(i), udf(j), udf(t), udf(k) |
| FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (udf(udf(i)) = udf(1)) |
| -- !query analysis |
| Project [cast(udf(cast( as string)) as string) AS xxx#x, cast(udf(cast(i#x as string)) as int) AS udf(i)#x, cast(udf(cast(j#x as string)) as int) AS udf(j)#x, cast(udf(cast(t#x as string)) as string) AS udf(t)#x, cast(udf(cast(k#x as string)) as int) AS udf(k)#x] |
| +- Filter (cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) = cast(udf(cast(1 as string)) as int)) |
| +- Project [i#x, j#x, t#x, k#x] |
| +- Join LeftOuter, (i#x = i#x) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| CREATE TABLE t1 (name STRING, n INTEGER) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`t1`, false |
| |
| |
| -- !query |
| CREATE TABLE t2 (name STRING, n INTEGER) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`t2`, false |
| |
| |
| -- !query |
| CREATE TABLE t3 (name STRING, n INTEGER) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`t3`, false |
| |
| |
| -- !query |
| INSERT INTO t1 VALUES ( 'bb', 11 ) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/t1, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/t1], Append, `spark_catalog`.`default`.`t1`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/t1), [name, n] |
| +- Project [cast(col1#x as string) AS name#x, cast(col2#x as int) AS n#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO t2 VALUES ( 'bb', 12 ) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/t2, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/t2], Append, `spark_catalog`.`default`.`t2`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/t2), [name, n] |
| +- Project [cast(col1#x as string) AS name#x, cast(col2#x as int) AS n#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO t2 VALUES ( 'cc', 22 ) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/t2, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/t2], Append, `spark_catalog`.`default`.`t2`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/t2), [name, n] |
| +- Project [cast(col1#x as string) AS name#x, cast(col2#x as int) AS n#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO t2 VALUES ( 'ee', 42 ) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/t2, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/t2], Append, `spark_catalog`.`default`.`t2`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/t2), [name, n] |
| +- Project [cast(col1#x as string) AS name#x, cast(col2#x as int) AS n#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO t3 VALUES ( 'bb', 13 ) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/t3, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/t3], Append, `spark_catalog`.`default`.`t3`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/t3), [name, n] |
| +- Project [cast(col1#x as string) AS name#x, cast(col2#x as int) AS n#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO t3 VALUES ( 'cc', 23 ) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/t3, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/t3], Append, `spark_catalog`.`default`.`t3`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/t3), [name, n] |
| +- Project [cast(col1#x as string) AS name#x, cast(col2#x as int) AS n#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO t3 VALUES ( 'dd', 33 ) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/t3, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/t3], Append, `spark_catalog`.`default`.`t3`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/t3), [name, n] |
| +- Project [cast(col1#x as string) AS name#x, cast(col2#x as int) AS n#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| SELECT * FROM t1 FULL JOIN t2 USING (name) FULL JOIN t3 USING (name) |
| -- !query analysis |
| Project [name#x, n#x, n#x, n#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, n#x, n#x, n#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- Project [coalesce(name#x, name#x) AS name#x, n#x, n#x] |
| : +- Join FullOuter, (name#x = name#x) |
| : :- SubqueryAlias spark_catalog.default.t1 |
| : : +- Relation spark_catalog.default.t1[name#x,n#x] parquet |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(name) as name, t2.n FROM t2) as s2 |
| INNER JOIN |
| (SELECT udf(udf(name)) as name, t3.n FROM t3) s3 |
| USING (name) |
| -- !query analysis |
| Project [name#x, n#x, n#x] |
| +- Project [name#x, n#x, n#x] |
| +- Join Inner, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, n#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) AS name#x, n#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(udf(name)) as name, t2.n FROM t2) as s2 |
| LEFT JOIN |
| (SELECT udf(name) as name, t3.n FROM t3) s3 |
| USING (name) |
| -- !query analysis |
| Project [name#x, n#x, n#x] |
| +- Project [name#x, n#x, n#x] |
| +- Join LeftOuter, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) AS name#x, n#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, n#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT udf(name), udf(udf(s2.n)), udf(s3.n) FROM |
| (SELECT * FROM t2) as s2 |
| FULL JOIN |
| (SELECT * FROM t3) s3 |
| USING (name) |
| -- !query analysis |
| Project [cast(udf(cast(name#x as string)) as string) AS udf(name)#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS udf(udf(n))#x, cast(udf(cast(n#x as string)) as int) AS udf(n)#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, n#x, n#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [name#x, n#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [name#x, n#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(udf(name)) as name, udf(n) as s2_n, udf(2) as s2_2 FROM t2) as s2 |
| NATURAL INNER JOIN |
| (SELECT udf(name) as name, udf(udf(n)) as s3_n, udf(3) as s3_2 FROM t3) s3 |
| -- !query analysis |
| Project [name#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Project [name#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Join Inner, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s2_n#x, cast(udf(cast(2 as string)) as int) AS s2_2#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS s3_n#x, cast(udf(cast(3 as string)) as int) AS s3_2#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(name) as name, udf(udf(n)) as s2_n, 2 as s2_2 FROM t2) as s2 |
| NATURAL LEFT JOIN |
| (SELECT udf(udf(name)) as name, udf(n) as s3_n, 3 as s3_2 FROM t3) s3 |
| -- !query analysis |
| Project [name#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Project [name#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Join LeftOuter, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS s2_n#x, 2 AS s2_2#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s3_n#x, 3 AS s3_2#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(name) as name, udf(n) as s2_n, 2 as s2_2 FROM t2) as s2 |
| NATURAL FULL JOIN |
| (SELECT udf(udf(name)) as name, udf(udf(n)) as s3_n, 3 as s3_2 FROM t3) s3 |
| -- !query analysis |
| Project [name#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s2_n#x, 2 AS s2_2#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) AS name#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS s3_n#x, 3 AS s3_2#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(udf(name)) as name, udf(n) as s1_n, 1 as s1_1 FROM t1) as s1 |
| NATURAL INNER JOIN |
| (SELECT udf(name) as name, udf(n) as s2_n, 2 as s2_2 FROM t2) as s2 |
| NATURAL INNER JOIN |
| (SELECT udf(udf(udf(name))) as name, udf(n) as s3_n, 3 as s3_2 FROM t3) s3 |
| -- !query analysis |
| Project [name#x, s1_n#x, s1_1#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Project [name#x, s1_n#x, s1_1#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Join Inner, (name#x = name#x) |
| :- Project [name#x, s1_n#x, s1_1#x, s2_n#x, s2_2#x] |
| : +- Join Inner, (name#x = name#x) |
| : :- SubqueryAlias s1 |
| : : +- Project [cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s1_n#x, 1 AS s1_1#x] |
| : : +- SubqueryAlias spark_catalog.default.t1 |
| : : +- Relation spark_catalog.default.t1[name#x,n#x] parquet |
| : +- SubqueryAlias s2 |
| : +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s2_n#x, 2 AS s2_2#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [cast(udf(cast(cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s3_n#x, 3 AS s3_2#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(name) as name, udf(n) as s1_n, udf(udf(1)) as s1_1 FROM t1) as s1 |
| NATURAL FULL JOIN |
| (SELECT udf(name) as name, udf(udf(n)) as s2_n, udf(2) as s2_2 FROM t2) as s2 |
| NATURAL FULL JOIN |
| (SELECT udf(udf(name)) as name, udf(n) as s3_n, udf(3) as s3_2 FROM t3) s3 |
| -- !query analysis |
| Project [name#x, s1_n#x, s1_1#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, s1_n#x, s1_1#x, s2_n#x, s2_2#x, s3_n#x, s3_2#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- Project [coalesce(name#x, name#x) AS name#x, s1_n#x, s1_1#x, s2_n#x, s2_2#x] |
| : +- Join FullOuter, (name#x = name#x) |
| : :- SubqueryAlias s1 |
| : : +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s1_n#x, cast(udf(cast(cast(udf(cast(1 as string)) as int) as string)) as int) AS s1_1#x] |
| : : +- SubqueryAlias spark_catalog.default.t1 |
| : : +- Relation spark_catalog.default.t1[name#x,n#x] parquet |
| : +- SubqueryAlias s2 |
| : +- Project [cast(udf(cast(name#x as string)) as string) AS name#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS s2_n#x, cast(udf(cast(2 as string)) as int) AS s2_2#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [cast(udf(cast(cast(udf(cast(name#x as string)) as string) as string)) as string) AS name#x, cast(udf(cast(n#x as string)) as int) AS s3_n#x, cast(udf(cast(3 as string)) as int) AS s3_2#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT name, udf(udf(s1_n)), udf(s2_n), udf(s3_n) FROM |
| (SELECT name, udf(udf(n)) as s1_n FROM t1) as s1 |
| NATURAL FULL JOIN |
| (SELECT * FROM |
| (SELECT name, udf(n) as s2_n FROM t2) as s2 |
| NATURAL FULL JOIN |
| (SELECT name, udf(udf(n)) as s3_n FROM t3) as s3 |
| ) ss2 |
| -- !query analysis |
| Project [name#x, cast(udf(cast(cast(udf(cast(s1_n#x as string)) as int) as string)) as int) AS udf(udf(s1_n))#x, cast(udf(cast(s2_n#x as string)) as int) AS udf(s2_n)#x, cast(udf(cast(s3_n#x as string)) as int) AS udf(s3_n)#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, s1_n#x, s2_n#x, s3_n#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- SubqueryAlias s1 |
| : +- Project [name#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS s1_n#x] |
| : +- SubqueryAlias spark_catalog.default.t1 |
| : +- Relation spark_catalog.default.t1[name#x,n#x] parquet |
| +- SubqueryAlias ss2 |
| +- Project [name#x, s2_n#x, s3_n#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, s2_n#x, s3_n#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [name#x, cast(udf(cast(n#x as string)) as int) AS s2_n#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [name#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS s3_n#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT name, n as s1_n FROM t1) as s1 |
| NATURAL FULL JOIN |
| (SELECT * FROM |
| (SELECT name, udf(udf(n)) as s2_n, 2 as s2_2 FROM t2) as s2 |
| NATURAL FULL JOIN |
| (SELECT name, udf(n) as s3_n FROM t3) as s3 |
| ) ss2 |
| -- !query analysis |
| Project [name#x, s1_n#x, s2_n#x, s2_2#x, s3_n#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, s1_n#x, s2_n#x, s2_2#x, s3_n#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- SubqueryAlias s1 |
| : +- Project [name#x, n#x AS s1_n#x] |
| : +- SubqueryAlias spark_catalog.default.t1 |
| : +- Relation spark_catalog.default.t1[name#x,n#x] parquet |
| +- SubqueryAlias ss2 |
| +- Project [name#x, s2_n#x, s2_2#x, s3_n#x] |
| +- Project [coalesce(name#x, name#x) AS name#x, s2_n#x, s2_2#x, s3_n#x] |
| +- Join FullOuter, (name#x = name#x) |
| :- SubqueryAlias s2 |
| : +- Project [name#x, cast(udf(cast(cast(udf(cast(n#x as string)) as int) as string)) as int) AS s2_n#x, 2 AS s2_2#x] |
| : +- SubqueryAlias spark_catalog.default.t2 |
| : +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| +- SubqueryAlias s3 |
| +- Project [name#x, cast(udf(cast(n#x as string)) as int) AS s3_n#x] |
| +- SubqueryAlias spark_catalog.default.t3 |
| +- Relation spark_catalog.default.t3[name#x,n#x] parquet |
| |
| |
| -- !query |
| SELECT s1.name, udf(s1_n), s2.name, udf(udf(s2_n)) FROM |
| (SELECT name, udf(n) as s1_n FROM t1) as s1 |
| FULL JOIN |
| (SELECT name, 2 as s2_n FROM t2) as s2 |
| ON (udf(udf(s1_n)) = udf(s2_n)) |
| -- !query analysis |
| Project [name#x, cast(udf(cast(s1_n#x as string)) as int) AS udf(s1_n)#x, name#x, cast(udf(cast(cast(udf(cast(s2_n#x as string)) as int) as string)) as int) AS udf(udf(s2_n))#x] |
| +- Join FullOuter, (cast(udf(cast(cast(udf(cast(s1_n#x as string)) as int) as string)) as int) = cast(udf(cast(s2_n#x as string)) as int)) |
| :- SubqueryAlias s1 |
| : +- Project [name#x, cast(udf(cast(n#x as string)) as int) AS s1_n#x] |
| : +- SubqueryAlias spark_catalog.default.t1 |
| : +- Relation spark_catalog.default.t1[name#x,n#x] parquet |
| +- SubqueryAlias s2 |
| +- Project [name#x, 2 AS s2_n#x] |
| +- SubqueryAlias spark_catalog.default.t2 |
| +- Relation spark_catalog.default.t2[name#x,n#x] parquet |
| |
| |
| -- !query |
| create or replace temporary view x as select * from |
| (values (1,11), (2,22), (3,null), (4,44), (5,null)) |
| as v(x1, x2) |
| -- !query analysis |
| CreateViewCommand `x`, select * from |
| (values (1,11), (2,22), (3,null), (4,44), (5,null)) |
| as v(x1, x2), false, true, LocalTempView, true |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| create or replace temporary view y as select * from |
| (values (1,111), (2,222), (3,333), (4,null)) |
| as v(y1, y2) |
| -- !query analysis |
| CreateViewCommand `y`, select * from |
| (values (1,111), (2,222), (3,333), (4,null)) |
| as v(y1, y2), false, true, LocalTempView, true |
| +- Project [y1#x, y2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select udf(udf(x1)), udf(x2) from x |
| -- !query analysis |
| Project [cast(udf(cast(cast(udf(cast(x1#x as string)) as int) as string)) as int) AS udf(udf(x1))#x, cast(udf(cast(x2#x as string)) as int) AS udf(x2)#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select udf(y1), udf(udf(y2)) from y |
| -- !query analysis |
| Project [cast(udf(cast(y1#x as string)) as int) AS udf(y1)#x, cast(udf(cast(cast(udf(cast(y2#x as string)) as int) as string)) as int) AS udf(udf(y2))#x] |
| +- SubqueryAlias y |
| +- View (`y`, [y1#x, y2#x]) |
| +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| +- Project [y1#x, y2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from x left join y on (udf(x1) = udf(udf(y1)) and udf(x2) is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x] |
| +- Join LeftOuter, ((cast(udf(cast(x1#x as string)) as int) = cast(udf(cast(cast(udf(cast(y1#x as string)) as int) as string)) as int)) AND isnotnull(cast(udf(cast(x2#x as string)) as int))) |
| :- SubqueryAlias x |
| : +- View (`x`, [x1#x, x2#x]) |
| : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : +- Project [x1#x, x2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias y |
| +- View (`y`, [y1#x, y2#x]) |
| +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| +- Project [y1#x, y2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from x left join y on (udf(udf(x1)) = udf(y1) and udf(y2) is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x] |
| +- Join LeftOuter, ((cast(udf(cast(cast(udf(cast(x1#x as string)) as int) as string)) as int) = cast(udf(cast(y1#x as string)) as int)) AND isnotnull(cast(udf(cast(y2#x as string)) as int))) |
| :- SubqueryAlias x |
| : +- View (`x`, [x1#x, x2#x]) |
| : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : +- Project [x1#x, x2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias y |
| +- View (`y`, [y1#x, y2#x]) |
| +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| +- Project [y1#x, y2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from (x left join y on (udf(x1) = udf(udf(y1)))) left join x xx(xx1,xx2) |
| on (udf(udf(x1)) = udf(xx1)) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x, xx1#x, xx2#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(x1#x as string)) as int) as string)) as int) = cast(udf(cast(xx1#x as string)) as int)) |
| :- Join LeftOuter, (cast(udf(cast(x1#x as string)) as int) = cast(udf(cast(cast(udf(cast(y1#x as string)) as int) as string)) as int)) |
| : :- SubqueryAlias x |
| : : +- View (`x`, [x1#x, x2#x]) |
| : : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : : +- Project [x1#x, x2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias y |
| : +- View (`y`, [y1#x, y2#x]) |
| : +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| : +- Project [y1#x, y2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias xx |
| +- Project [x1#x AS xx1#x, x2#x AS xx2#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from (x left join y on (udf(x1) = udf(y1))) left join x xx(xx1,xx2) |
| on (udf(x1) = xx1 and udf(x2) is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x, xx1#x, xx2#x] |
| +- Join LeftOuter, ((cast(udf(cast(x1#x as string)) as int) = xx1#x) AND isnotnull(cast(udf(cast(x2#x as string)) as int))) |
| :- Join LeftOuter, (cast(udf(cast(x1#x as string)) as int) = cast(udf(cast(y1#x as string)) as int)) |
| : :- SubqueryAlias x |
| : : +- View (`x`, [x1#x, x2#x]) |
| : : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : : +- Project [x1#x, x2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias y |
| : +- View (`y`, [y1#x, y2#x]) |
| : +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| : +- Project [y1#x, y2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias xx |
| +- Project [x1#x AS xx1#x, x2#x AS xx2#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from (x left join y on (x1 = udf(y1))) left join x xx(xx1,xx2) |
| on (udf(x1) = udf(udf(xx1)) and udf(y2) is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x, xx1#x, xx2#x] |
| +- Join LeftOuter, ((cast(udf(cast(x1#x as string)) as int) = cast(udf(cast(cast(udf(cast(xx1#x as string)) as int) as string)) as int)) AND isnotnull(cast(udf(cast(y2#x as string)) as int))) |
| :- Join LeftOuter, (x1#x = cast(udf(cast(y1#x as string)) as int)) |
| : :- SubqueryAlias x |
| : : +- View (`x`, [x1#x, x2#x]) |
| : : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : : +- Project [x1#x, x2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias y |
| : +- View (`y`, [y1#x, y2#x]) |
| : +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| : +- Project [y1#x, y2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias xx |
| +- Project [x1#x AS xx1#x, x2#x AS xx2#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from (x left join y on (udf(x1) = y1)) left join x xx(xx1,xx2) |
| on (udf(udf(x1)) = udf(xx1) and udf(udf(xx2)) is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x, xx1#x, xx2#x] |
| +- Join LeftOuter, ((cast(udf(cast(cast(udf(cast(x1#x as string)) as int) as string)) as int) = cast(udf(cast(xx1#x as string)) as int)) AND isnotnull(cast(udf(cast(cast(udf(cast(xx2#x as string)) as int) as string)) as int))) |
| :- Join LeftOuter, (cast(udf(cast(x1#x as string)) as int) = y1#x) |
| : :- SubqueryAlias x |
| : : +- View (`x`, [x1#x, x2#x]) |
| : : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : : +- Project [x1#x, x2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias y |
| : +- View (`y`, [y1#x, y2#x]) |
| : +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| : +- Project [y1#x, y2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias xx |
| +- Project [x1#x AS xx1#x, x2#x AS xx2#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from (x left join y on (udf(udf(x1)) = udf(udf(y1)))) left join x xx(xx1,xx2) |
| on (udf(x1) = udf(xx1)) where (udf(x2) is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x, xx1#x, xx2#x] |
| +- Filter isnotnull(cast(udf(cast(x2#x as string)) as int)) |
| +- Join LeftOuter, (cast(udf(cast(x1#x as string)) as int) = cast(udf(cast(xx1#x as string)) as int)) |
| :- Join LeftOuter, (cast(udf(cast(cast(udf(cast(x1#x as string)) as int) as string)) as int) = cast(udf(cast(cast(udf(cast(y1#x as string)) as int) as string)) as int)) |
| : :- SubqueryAlias x |
| : : +- View (`x`, [x1#x, x2#x]) |
| : : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : : +- Project [x1#x, x2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias y |
| : +- View (`y`, [y1#x, y2#x]) |
| : +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| : +- Project [y1#x, y2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias xx |
| +- Project [x1#x AS xx1#x, x2#x AS xx2#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from (x left join y on (udf(x1) = udf(y1))) left join x xx(xx1,xx2) |
| on (udf(x1) = xx1) where (udf(y2) is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x, xx1#x, xx2#x] |
| +- Filter isnotnull(cast(udf(cast(y2#x as string)) as int)) |
| +- Join LeftOuter, (cast(udf(cast(x1#x as string)) as int) = xx1#x) |
| :- Join LeftOuter, (cast(udf(cast(x1#x as string)) as int) = cast(udf(cast(y1#x as string)) as int)) |
| : :- SubqueryAlias x |
| : : +- View (`x`, [x1#x, x2#x]) |
| : : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : : +- Project [x1#x, x2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias y |
| : +- View (`y`, [y1#x, y2#x]) |
| : +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| : +- Project [y1#x, y2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias xx |
| +- Project [x1#x AS xx1#x, x2#x AS xx2#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from (x left join y on (udf(x1) = udf(y1))) left join x xx(xx1,xx2) |
| on (x1 = udf(xx1)) where (xx2 is not null) |
| -- !query analysis |
| Project [x1#x, x2#x, y1#x, y2#x, xx1#x, xx2#x] |
| +- Filter isnotnull(xx2#x) |
| +- Join LeftOuter, (x1#x = cast(udf(cast(xx1#x as string)) as int)) |
| :- Join LeftOuter, (cast(udf(cast(x1#x as string)) as int) = cast(udf(cast(y1#x as string)) as int)) |
| : :- SubqueryAlias x |
| : : +- View (`x`, [x1#x, x2#x]) |
| : : +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| : : +- Project [x1#x, x2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias y |
| : +- View (`y`, [y1#x, y2#x]) |
| : +- Project [cast(y1#x as int) AS y1#x, cast(y2#x as int) AS y2#x] |
| : +- Project [y1#x, y2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS y1#x, col2#x AS y2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias xx |
| +- Project [x1#x AS xx1#x, x2#x AS xx2#x] |
| +- SubqueryAlias x |
| +- View (`x`, [x1#x, x2#x]) |
| +- Project [cast(x1#x as int) AS x1#x, cast(x2#x as int) AS x2#x] |
| +- Project [x1#x, x2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS x1#x, col2#x AS x2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select udf(udf(count(*))) from tenk1 a where udf(udf(unique1)) in |
| (select udf(unique1) from tenk1 b join tenk1 c using (unique1) |
| where udf(udf(b.unique2)) = udf(42)) |
| -- !query analysis |
| Aggregate [cast(udf(cast(cast(udf(cast(count(1) as string)) as bigint) as string)) as bigint) AS udf(udf(count(1)))#xL] |
| +- Filter cast(udf(cast(cast(udf(cast(unique1#x as string)) as int) as string)) as int) IN (list#x []) |
| : +- Project [cast(udf(cast(unique1#x as string)) as int) AS udf(unique1)#x] |
| : +- Filter (cast(udf(cast(cast(udf(cast(unique2#x as string)) as int) as string)) as int) = cast(udf(cast(42 as string)) as int)) |
| : +- Project [unique1#x, unique2#x, two#x, four#x, ten#x, twenty#x, hundred#x, thousand#x, twothousand#x, fivethous#x, tenthous#x, odd#x, even#x, stringu1#x, stringu2#x, string4#x, unique2#x, two#x, four#x, ten#x, twenty#x, hundred#x, thousand#x, twothousand#x, ... 7 more fields] |
| : +- Join Inner, (unique1#x = unique1#x) |
| : :- SubqueryAlias b |
| : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : +- SubqueryAlias c |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias a |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select udf(count(*)) from tenk1 x where |
| udf(x.unique1) in (select udf(a.f1) from int4_tbl a,float8_tbl b where udf(udf(a.f1))=b.f1) and |
| udf(x.unique1) = 0 and |
| udf(x.unique1) in (select aa.f1 from int4_tbl aa,float8_tbl bb where aa.f1=udf(udf(bb.f1))) |
| -- !query analysis |
| Aggregate [cast(udf(cast(count(1) as string)) as bigint) AS udf(count(1))#xL] |
| +- Filter ((cast(udf(cast(unique1#x as string)) as int) IN (list#x []) AND (cast(udf(cast(unique1#x as string)) as int) = 0)) AND cast(udf(cast(unique1#x as string)) as int) IN (list#x [])) |
| : :- Project [cast(udf(cast(f1#x as string)) as int) AS udf(f1)#x] |
| : : +- Filter (cast(cast(udf(cast(cast(udf(cast(f1#x as string)) as int) as string)) as int) as double) = f1#x) |
| : : +- Join Inner |
| : : :- SubqueryAlias a |
| : : : +- SubqueryAlias int4_tbl |
| : : : +- View (`INT4_TBL`, [f1#x]) |
| : : : +- Project [cast(f1#x as int) AS f1#x] |
| : : : +- Project [f1#x] |
| : : : +- SubqueryAlias v |
| : : : +- Project [col1#x AS f1#x] |
| : : : +- LocalRelation [col1#x] |
| : : +- SubqueryAlias b |
| : : +- SubqueryAlias float8_tbl |
| : : +- View (`FLOAT8_TBL`, [f1#x]) |
| : : +- Project [cast(f1#x as double) AS f1#x] |
| : : +- Project [f1#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS f1#x] |
| : : +- LocalRelation [col1#x] |
| : +- Project [f1#x] |
| : +- Filter (cast(f1#x as double) = cast(udf(cast(cast(udf(cast(f1#x as string)) as double) as string)) as double)) |
| : +- Join Inner |
| : :- SubqueryAlias aa |
| : : +- SubqueryAlias int4_tbl |
| : : +- View (`INT4_TBL`, [f1#x]) |
| : : +- Project [cast(f1#x as int) AS f1#x] |
| : : +- Project [f1#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS f1#x] |
| : : +- LocalRelation [col1#x] |
| : +- SubqueryAlias bb |
| : +- SubqueryAlias float8_tbl |
| : +- View (`FLOAT8_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as double) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias x |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select udf(udf(count(*))) from tenk1 x where |
| udf(x.unique1) in (select udf(a.f1) from int4_tbl a,float8_tbl b where udf(udf(a.f1))=b.f1) and |
| udf(x.unique1) = 0 and |
| udf(udf(x.unique1)) in (select udf(aa.f1) from int4_tbl aa,float8_tbl bb where udf(aa.f1)=udf(udf(bb.f1))) |
| -- !query analysis |
| Aggregate [cast(udf(cast(cast(udf(cast(count(1) as string)) as bigint) as string)) as bigint) AS udf(udf(count(1)))#xL] |
| +- Filter ((cast(udf(cast(unique1#x as string)) as int) IN (list#x []) AND (cast(udf(cast(unique1#x as string)) as int) = 0)) AND cast(udf(cast(cast(udf(cast(unique1#x as string)) as int) as string)) as int) IN (list#x [])) |
| : :- Project [cast(udf(cast(f1#x as string)) as int) AS udf(f1)#x] |
| : : +- Filter (cast(cast(udf(cast(cast(udf(cast(f1#x as string)) as int) as string)) as int) as double) = f1#x) |
| : : +- Join Inner |
| : : :- SubqueryAlias a |
| : : : +- SubqueryAlias int4_tbl |
| : : : +- View (`INT4_TBL`, [f1#x]) |
| : : : +- Project [cast(f1#x as int) AS f1#x] |
| : : : +- Project [f1#x] |
| : : : +- SubqueryAlias v |
| : : : +- Project [col1#x AS f1#x] |
| : : : +- LocalRelation [col1#x] |
| : : +- SubqueryAlias b |
| : : +- SubqueryAlias float8_tbl |
| : : +- View (`FLOAT8_TBL`, [f1#x]) |
| : : +- Project [cast(f1#x as double) AS f1#x] |
| : : +- Project [f1#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS f1#x] |
| : : +- LocalRelation [col1#x] |
| : +- Project [cast(udf(cast(f1#x as string)) as int) AS udf(f1)#x] |
| : +- Filter (cast(cast(udf(cast(f1#x as string)) as int) as double) = cast(udf(cast(cast(udf(cast(f1#x as string)) as double) as string)) as double)) |
| : +- Join Inner |
| : :- SubqueryAlias aa |
| : : +- SubqueryAlias int4_tbl |
| : : +- View (`INT4_TBL`, [f1#x]) |
| : : +- Project [cast(f1#x as int) AS f1#x] |
| : : +- Project [f1#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS f1#x] |
| : : +- LocalRelation [col1#x] |
| : +- SubqueryAlias bb |
| : +- SubqueryAlias float8_tbl |
| : +- View (`FLOAT8_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as double) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias x |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select * from int8_tbl i1 left join (int8_tbl i2 join |
| (select udf(123) as x) ss on udf(udf(i2.q1)) = udf(x)) on udf(udf(i1.q2)) = udf(udf(i2.q2)) |
| order by udf(udf(1)), 2 |
| -- !query analysis |
| Sort [cast(udf(cast(cast(udf(cast(1 as string)) as int) as string)) as int) ASC NULLS FIRST, q2#xL ASC NULLS FIRST], true |
| +- Project [q1#xL, q2#xL, q1#xL, q2#xL, x#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(q2#xL as string)) as bigint) as string)) as bigint) = cast(udf(cast(cast(udf(cast(q2#xL as string)) as bigint) as string)) as bigint)) |
| :- SubqueryAlias i1 |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- Join Inner, (cast(udf(cast(cast(udf(cast(q1#xL as string)) as bigint) as string)) as bigint) = cast(cast(udf(cast(x#x as string)) as int) as bigint)) |
| :- SubqueryAlias i2 |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias ss |
| +- Project [cast(udf(cast(123 as string)) as int) AS x#x] |
| +- OneRowRelation |
| |
| |
| -- !query |
| select udf(count(*)) |
| from |
| (select udf(t3.tenthous) as x1, udf(coalesce(udf(t1.stringu1), udf(t2.stringu1))) as x2 |
| from tenk1 t1 |
| left join tenk1 t2 on udf(t1.unique1) = udf(t2.unique1) |
| join tenk1 t3 on t1.unique2 = udf(t3.unique2)) ss, |
| tenk1 t4, |
| tenk1 t5 |
| where udf(t4.thousand) = udf(t5.unique1) and udf(udf(ss.x1)) = t4.tenthous and udf(ss.x2) = udf(udf(t5.stringu1)) |
| -- !query analysis |
| Aggregate [cast(udf(cast(count(1) as string)) as bigint) AS udf(count(1))#xL] |
| +- Filter (((cast(udf(cast(thousand#x as string)) as int) = cast(udf(cast(unique1#x as string)) as int)) AND (cast(udf(cast(cast(udf(cast(x1#x as string)) as int) as string)) as int) = tenthous#x)) AND (cast(udf(cast(x2#x as string)) as string) = cast(udf(cast(cast(udf(cast(stringu1#x as string)) as string) as string)) as string))) |
| +- Join Inner |
| :- Join Inner |
| : :- SubqueryAlias ss |
| : : +- Project [cast(udf(cast(tenthous#x as string)) as int) AS x1#x, cast(udf(cast(coalesce(cast(udf(cast(stringu1#x as string)) as string), cast(udf(cast(stringu1#x as string)) as string)) as string)) as string) AS x2#x] |
| : : +- Join Inner, (unique2#x = cast(udf(cast(unique2#x as string)) as int)) |
| : : :- Join LeftOuter, (cast(udf(cast(unique1#x as string)) as int) = cast(udf(cast(unique1#x as string)) as int)) |
| : : : :- SubqueryAlias t1 |
| : : : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : : : +- SubqueryAlias t2 |
| : : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : : +- SubqueryAlias t3 |
| : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : +- SubqueryAlias t4 |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias t5 |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select udf(a.f1), udf(b.f1), udf(t.thousand), udf(t.tenthous) from |
| tenk1 t, |
| (select udf(udf(sum(udf(f1))+1)) as f1 from int4_tbl i4a) a, |
| (select udf(sum(udf(f1))) as f1 from int4_tbl i4b) b |
| where b.f1 = udf(t.thousand) and udf(a.f1) = udf(b.f1) and udf((udf(a.f1)+udf(b.f1)+999)) = udf(udf(t.tenthous)) |
| -- !query analysis |
| Project [cast(udf(cast(f1#xL as string)) as bigint) AS udf(f1)#xL, cast(udf(cast(f1#xL as string)) as bigint) AS udf(f1)#xL, cast(udf(cast(thousand#x as string)) as int) AS udf(thousand)#x, cast(udf(cast(tenthous#x as string)) as int) AS udf(tenthous)#x] |
| +- Filter (((f1#xL = cast(cast(udf(cast(thousand#x as string)) as int) as bigint)) AND (cast(udf(cast(f1#xL as string)) as bigint) = cast(udf(cast(f1#xL as string)) as bigint))) AND (cast(udf(cast(((cast(udf(cast(f1#xL as string)) as bigint) + cast(udf(cast(f1#xL as string)) as bigint)) + cast(999 as bigint)) as string)) as bigint) = cast(cast(udf(cast(cast(udf(cast(tenthous#x as string)) as int) as string)) as int) as bigint))) |
| +- Join Inner |
| :- Join Inner |
| : :- SubqueryAlias t |
| : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : +- SubqueryAlias a |
| : +- Aggregate [cast(udf(cast(cast(udf(cast((sum(cast(udf(cast(f1#x as string)) as int)) + cast(1 as bigint)) as string)) as bigint) as string)) as bigint) AS f1#xL] |
| : +- SubqueryAlias i4a |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias b |
| +- Aggregate [cast(udf(cast(sum(cast(udf(cast(f1#x as string)) as int)) as string)) as bigint) AS f1#xL] |
| +- SubqueryAlias i4b |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from |
| j1_tbl full join |
| (select * from j2_tbl order by udf(udf(j2_tbl.i)) desc, udf(j2_tbl.k) asc) j2_tbl |
| on udf(j1_tbl.i) = udf(j2_tbl.i) and udf(j1_tbl.i) = udf(j2_tbl.k) |
| -- !query analysis |
| Project [i#x, j#x, t#x, i#x, k#x] |
| +- Join FullOuter, ((cast(udf(cast(i#x as string)) as int) = cast(udf(cast(i#x as string)) as int)) AND (cast(udf(cast(i#x as string)) as int) = cast(udf(cast(k#x as string)) as int))) |
| :- SubqueryAlias spark_catalog.default.j1_tbl |
| : +- Relation spark_catalog.default.j1_tbl[i#x,j#x,t#x] parquet |
| +- SubqueryAlias j2_tbl |
| +- Sort [cast(udf(cast(cast(udf(cast(i#x as string)) as int) as string)) as int) DESC NULLS LAST, cast(udf(cast(k#x as string)) as int) ASC NULLS FIRST], true |
| +- Project [i#x, k#x] |
| +- SubqueryAlias spark_catalog.default.j2_tbl |
| +- Relation spark_catalog.default.j2_tbl[i#x,k#x] parquet |
| |
| |
| -- !query |
| select udf(count(*)) from |
| (select * from tenk1 x order by udf(x.thousand), udf(udf(x.twothousand)), x.fivethous) x |
| left join |
| (select * from tenk1 y order by udf(y.unique2)) y |
| on udf(x.thousand) = y.unique2 and x.twothousand = udf(y.hundred) and x.fivethous = y.unique2 |
| -- !query analysis |
| Aggregate [cast(udf(cast(count(1) as string)) as bigint) AS udf(count(1))#xL] |
| +- Join LeftOuter, (((cast(udf(cast(thousand#x as string)) as int) = unique2#x) AND (twothousand#x = cast(udf(cast(hundred#x as string)) as int))) AND (fivethous#x = unique2#x)) |
| :- SubqueryAlias x |
| : +- Sort [cast(udf(cast(thousand#x as string)) as int) ASC NULLS FIRST, cast(udf(cast(cast(udf(cast(twothousand#x as string)) as int) as string)) as int) ASC NULLS FIRST, fivethous#x ASC NULLS FIRST], true |
| : +- Project [unique1#x, unique2#x, two#x, four#x, ten#x, twenty#x, hundred#x, thousand#x, twothousand#x, fivethous#x, tenthous#x, odd#x, even#x, stringu1#x, stringu2#x, string4#x] |
| : +- SubqueryAlias x |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias y |
| +- Sort [cast(udf(cast(unique2#x as string)) as int) ASC NULLS FIRST], true |
| +- Project [unique1#x, unique2#x, two#x, four#x, ten#x, twenty#x, hundred#x, thousand#x, twothousand#x, fivethous#x, tenthous#x, odd#x, even#x, stringu1#x, stringu2#x, string4#x] |
| +- SubqueryAlias y |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| DROP TABLE t1 |
| -- !query analysis |
| DropTable false, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.t1 |
| |
| |
| -- !query |
| DROP TABLE t2 |
| -- !query analysis |
| DropTable false, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.t2 |
| |
| |
| -- !query |
| DROP TABLE t3 |
| -- !query analysis |
| DropTable false, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.t3 |
| |
| |
| -- !query |
| DROP TABLE J1_TBL |
| -- !query analysis |
| DropTable false, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.J1_TBL |
| |
| |
| -- !query |
| DROP TABLE J2_TBL |
| -- !query analysis |
| DropTable false, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.J2_TBL |
| |
| |
| -- !query |
| create or replace temporary view tt1 as select * from |
| (values (1, 11), (2, NULL)) |
| as v(tt1_id, joincol) |
| -- !query analysis |
| CreateViewCommand `tt1`, select * from |
| (values (1, 11), (2, NULL)) |
| as v(tt1_id, joincol), false, true, LocalTempView, true |
| +- Project [tt1_id#x, joincol#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS tt1_id#x, col2#x AS joincol#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| create or replace temporary view tt2 as select * from |
| (values (21, 11), (22, 11)) |
| as v(tt2_id, joincol) |
| -- !query analysis |
| CreateViewCommand `tt2`, select * from |
| (values (21, 11), (22, 11)) |
| as v(tt2_id, joincol), false, true, LocalTempView, true |
| +- Project [tt2_id#x, joincol#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS tt2_id#x, col2#x AS joincol#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select tt1.*, tt2.* from tt1 left join tt2 on udf(udf(tt1.joincol)) = udf(tt2.joincol) |
| -- !query analysis |
| Project [tt1_id#x, joincol#x, tt2_id#x, joincol#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(joincol#x as string)) as int) as string)) as int) = cast(udf(cast(joincol#x as string)) as int)) |
| :- SubqueryAlias tt1 |
| : +- View (`tt1`, [tt1_id#x, joincol#x]) |
| : +- Project [cast(tt1_id#x as int) AS tt1_id#x, cast(joincol#x as int) AS joincol#x] |
| : +- Project [tt1_id#x, joincol#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS tt1_id#x, col2#x AS joincol#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias tt2 |
| +- View (`tt2`, [tt2_id#x, joincol#x]) |
| +- Project [cast(tt2_id#x as int) AS tt2_id#x, cast(joincol#x as int) AS joincol#x] |
| +- Project [tt2_id#x, joincol#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS tt2_id#x, col2#x AS joincol#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select tt1.*, tt2.* from tt2 right join tt1 on udf(udf(tt1.joincol)) = udf(udf(tt2.joincol)) |
| -- !query analysis |
| Project [tt1_id#x, joincol#x, tt2_id#x, joincol#x] |
| +- Join RightOuter, (cast(udf(cast(cast(udf(cast(joincol#x as string)) as int) as string)) as int) = cast(udf(cast(cast(udf(cast(joincol#x as string)) as int) as string)) as int)) |
| :- SubqueryAlias tt2 |
| : +- View (`tt2`, [tt2_id#x, joincol#x]) |
| : +- Project [cast(tt2_id#x as int) AS tt2_id#x, cast(joincol#x as int) AS joincol#x] |
| : +- Project [tt2_id#x, joincol#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS tt2_id#x, col2#x AS joincol#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias tt1 |
| +- View (`tt1`, [tt1_id#x, joincol#x]) |
| +- Project [cast(tt1_id#x as int) AS tt1_id#x, cast(joincol#x as int) AS joincol#x] |
| +- Project [tt1_id#x, joincol#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS tt1_id#x, col2#x AS joincol#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select udf(count(*)) from tenk1 a, tenk1 b |
| where udf(a.hundred) = b.thousand and udf(udf((b.fivethous % 10)) < 10) |
| -- !query analysis |
| Aggregate [cast(udf(cast(count(1) as string)) as bigint) AS udf(count(1))#xL] |
| +- Filter ((cast(udf(cast(hundred#x as string)) as int) = thousand#x) AND cast(udf(cast((cast(udf(cast((fivethous#x % 10) as string)) as int) < 10) as string)) as boolean)) |
| +- Join Inner |
| :- SubqueryAlias a |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias b |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| DROP TABLE IF EXISTS tt3 |
| -- !query analysis |
| DropTable true, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.tt3 |
| |
| |
| -- !query |
| CREATE TABLE tt3(f1 int, f2 string) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`tt3`, false |
| |
| |
| -- !query |
| INSERT INTO tt3 SELECT x.id, repeat('xyzzy', 100) FROM range(1,10001) x |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/tt3, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/tt3], Append, `spark_catalog`.`default`.`tt3`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/tt3), [f1, f2] |
| +- Project [cast(id#xL as int) AS f1#x, cast(repeat(xyzzy, 100)#x as string) AS f2#x] |
| +- Project [id#xL, repeat(xyzzy, 100) AS repeat(xyzzy, 100)#x] |
| +- SubqueryAlias x |
| +- Range (1, 10001, step=1) |
| |
| |
| -- !query |
| DROP TABLE IF EXISTS tt4 |
| -- !query analysis |
| DropTable true, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.tt4 |
| |
| |
| -- !query |
| CREATE TABLE tt4(f1 int) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`tt4`, false |
| |
| |
| -- !query |
| INSERT INTO tt4 VALUES (0),(1),(9999) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/tt4, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/tt4], Append, `spark_catalog`.`default`.`tt4`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/tt4), [f1] |
| +- Project [cast(col1#x as int) AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| SELECT udf(udf(a.f1)) as f1 |
| FROM tt4 a |
| LEFT JOIN ( |
| SELECT b.f1 |
| FROM tt3 b LEFT JOIN tt3 c ON udf(b.f1) = udf(c.f1) |
| WHERE udf(c.f1) IS NULL |
| ) AS d ON udf(a.f1) = d.f1 |
| WHERE udf(udf(d.f1)) IS NULL |
| -- !query analysis |
| Project [cast(udf(cast(cast(udf(cast(f1#x as string)) as int) as string)) as int) AS f1#x] |
| +- Filter isnull(cast(udf(cast(cast(udf(cast(f1#x as string)) as int) as string)) as int)) |
| +- Join LeftOuter, (cast(udf(cast(f1#x as string)) as int) = f1#x) |
| :- SubqueryAlias a |
| : +- SubqueryAlias spark_catalog.default.tt4 |
| : +- Relation spark_catalog.default.tt4[f1#x] parquet |
| +- SubqueryAlias d |
| +- Project [f1#x] |
| +- Filter isnull(cast(udf(cast(f1#x as string)) as int)) |
| +- Join LeftOuter, (cast(udf(cast(f1#x as string)) as int) = cast(udf(cast(f1#x as string)) as int)) |
| :- SubqueryAlias b |
| : +- SubqueryAlias spark_catalog.default.tt3 |
| : +- Relation spark_catalog.default.tt3[f1#x,f2#x] parquet |
| +- SubqueryAlias c |
| +- SubqueryAlias spark_catalog.default.tt3 |
| +- Relation spark_catalog.default.tt3[f1#x,f2#x] parquet |
| |
| |
| -- !query |
| create or replace temporary view tt5 as select * from |
| (values (1, 10), (1, 11)) |
| as v(f1, f2) |
| -- !query analysis |
| CreateViewCommand `tt5`, select * from |
| (values (1, 10), (1, 11)) |
| as v(f1, f2), false, true, LocalTempView, true |
| +- Project [f1#x, f2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x, col2#x AS f2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| create or replace temporary view tt6 as select * from |
| (values (1, 9), (1, 2), (2, 9)) |
| as v(f1, f2) |
| -- !query analysis |
| CreateViewCommand `tt6`, select * from |
| (values (1, 9), (1, 2), (2, 9)) |
| as v(f1, f2), false, true, LocalTempView, true |
| +- Project [f1#x, f2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x, col2#x AS f2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from tt5,tt6 where udf(tt5.f1) = udf(tt6.f1) and udf(tt5.f1) = udf(udf(tt5.f2) - udf(tt6.f2)) |
| -- !query analysis |
| Project [f1#x, f2#x, f1#x, f2#x] |
| +- Filter ((cast(udf(cast(f1#x as string)) as int) = cast(udf(cast(f1#x as string)) as int)) AND (cast(udf(cast(f1#x as string)) as int) = cast(udf(cast((cast(udf(cast(f2#x as string)) as int) - cast(udf(cast(f2#x as string)) as int)) as string)) as int))) |
| +- Join Inner |
| :- SubqueryAlias tt5 |
| : +- View (`tt5`, [f1#x, f2#x]) |
| : +- Project [cast(f1#x as int) AS f1#x, cast(f2#x as int) AS f2#x] |
| : +- Project [f1#x, f2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x, col2#x AS f2#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias tt6 |
| +- View (`tt6`, [f1#x, f2#x]) |
| +- Project [cast(f1#x as int) AS f1#x, cast(f2#x as int) AS f2#x] |
| +- Project [f1#x, f2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x, col2#x AS f2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| create or replace temporary view xx as select * from |
| (values (1), (2), (3)) |
| as v(pkxx) |
| -- !query analysis |
| CreateViewCommand `xx`, select * from |
| (values (1), (2), (3)) |
| as v(pkxx), false, true, LocalTempView, true |
| +- Project [pkxx#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS pkxx#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create or replace temporary view yy as select * from |
| (values (101, 1), (201, 2), (301, NULL)) |
| as v(pkyy, pkxx) |
| -- !query analysis |
| CreateViewCommand `yy`, select * from |
| (values (101, 1), (201, 2), (301, NULL)) |
| as v(pkyy, pkxx), false, true, LocalTempView, true |
| +- Project [pkyy#x, pkxx#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS pkyy#x, col2#x AS pkxx#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select udf(udf(yy.pkyy)) as yy_pkyy, udf(yy.pkxx) as yy_pkxx, udf(yya.pkyy) as yya_pkyy, |
| udf(xxa.pkxx) as xxa_pkxx, udf(xxb.pkxx) as xxb_pkxx |
| from yy |
| left join (SELECT * FROM yy where pkyy = 101) as yya ON udf(yy.pkyy) = udf(yya.pkyy) |
| left join xx xxa on udf(yya.pkxx) = udf(udf(xxa.pkxx)) |
| left join xx xxb on udf(udf(coalesce (xxa.pkxx, 1))) = udf(xxb.pkxx) |
| -- !query analysis |
| Project [cast(udf(cast(cast(udf(cast(pkyy#x as string)) as int) as string)) as int) AS yy_pkyy#x, cast(udf(cast(pkxx#x as string)) as int) AS yy_pkxx#x, cast(udf(cast(pkyy#x as string)) as int) AS yya_pkyy#x, cast(udf(cast(pkxx#x as string)) as int) AS xxa_pkxx#x, cast(udf(cast(pkxx#x as string)) as int) AS xxb_pkxx#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(coalesce(pkxx#x, 1) as string)) as int) as string)) as int) = cast(udf(cast(pkxx#x as string)) as int)) |
| :- Join LeftOuter, (cast(udf(cast(pkxx#x as string)) as int) = cast(udf(cast(cast(udf(cast(pkxx#x as string)) as int) as string)) as int)) |
| : :- Join LeftOuter, (cast(udf(cast(pkyy#x as string)) as int) = cast(udf(cast(pkyy#x as string)) as int)) |
| : : :- SubqueryAlias yy |
| : : : +- View (`yy`, [pkyy#x, pkxx#x]) |
| : : : +- Project [cast(pkyy#x as int) AS pkyy#x, cast(pkxx#x as int) AS pkxx#x] |
| : : : +- Project [pkyy#x, pkxx#x] |
| : : : +- SubqueryAlias v |
| : : : +- Project [col1#x AS pkyy#x, col2#x AS pkxx#x] |
| : : : +- LocalRelation [col1#x, col2#x] |
| : : +- SubqueryAlias yya |
| : : +- Project [pkyy#x, pkxx#x] |
| : : +- Filter (pkyy#x = 101) |
| : : +- SubqueryAlias yy |
| : : +- View (`yy`, [pkyy#x, pkxx#x]) |
| : : +- Project [cast(pkyy#x as int) AS pkyy#x, cast(pkxx#x as int) AS pkxx#x] |
| : : +- Project [pkyy#x, pkxx#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS pkyy#x, col2#x AS pkxx#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias xxa |
| : +- SubqueryAlias xx |
| : +- View (`xx`, [pkxx#x]) |
| : +- Project [cast(pkxx#x as int) AS pkxx#x] |
| : +- Project [pkxx#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS pkxx#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias xxb |
| +- SubqueryAlias xx |
| +- View (`xx`, [pkxx#x]) |
| +- Project [cast(pkxx#x as int) AS pkxx#x] |
| +- Project [pkxx#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS pkxx#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create or replace temporary view zt1 as select * from |
| (values (53)) |
| as v(f1) |
| -- !query analysis |
| CreateViewCommand `zt1`, select * from |
| (values (53)) |
| as v(f1), false, true, LocalTempView, true |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create or replace temporary view zt2 as select * from |
| (values (53)) |
| as v(f2) |
| -- !query analysis |
| CreateViewCommand `zt2`, select * from |
| (values (53)) |
| as v(f2), false, true, LocalTempView, true |
| +- Project [f2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f2#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create or replace temporary view zt3(f3 int) using parquet |
| -- !query analysis |
| CreateTempViewUsing [tableIdent:`zt3` StructType(StructField(f3,IntegerType,true)) replace:true provider:parquet Map() |
| |
| |
| -- !query |
| select * from |
| zt2 left join zt3 on (udf(f2) = udf(udf(f3))) |
| left join zt1 on (udf(udf(f3)) = udf(f1)) |
| where udf(f2) = 53 |
| -- !query analysis |
| Project [f2#x, f3#x, f1#x] |
| +- Filter (cast(udf(cast(f2#x as string)) as int) = 53) |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(f3#x as string)) as int) as string)) as int) = cast(udf(cast(f1#x as string)) as int)) |
| :- Join LeftOuter, (cast(udf(cast(f2#x as string)) as int) = cast(udf(cast(cast(udf(cast(f3#x as string)) as int) as string)) as int)) |
| : :- SubqueryAlias zt2 |
| : : +- View (`zt2`, [f2#x]) |
| : : +- Project [cast(f2#x as int) AS f2#x] |
| : : +- Project [f2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS f2#x] |
| : : +- LocalRelation [col1#x] |
| : +- SubqueryAlias zt3 |
| : +- View (`zt3`, [f3#x]) |
| : +- Relation [f3#x] parquet |
| +- SubqueryAlias zt1 |
| +- View (`zt1`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create temp view zv1 as select *,'dummy' AS junk from zt1 |
| -- !query analysis |
| CreateViewCommand `zv1`, select *,'dummy' AS junk from zt1, false, false, LocalTempView, true |
| +- Project [f1#x, dummy AS junk#x] |
| +- SubqueryAlias zt1 |
| +- View (`zt1`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from |
| zt2 left join zt3 on (f2 = udf(f3)) |
| left join zv1 on (udf(f3) = f1) |
| where udf(udf(f2)) = 53 |
| -- !query analysis |
| Project [f2#x, f3#x, f1#x, junk#x] |
| +- Filter (cast(udf(cast(cast(udf(cast(f2#x as string)) as int) as string)) as int) = 53) |
| +- Join LeftOuter, (cast(udf(cast(f3#x as string)) as int) = f1#x) |
| :- Join LeftOuter, (f2#x = cast(udf(cast(f3#x as string)) as int)) |
| : :- SubqueryAlias zt2 |
| : : +- View (`zt2`, [f2#x]) |
| : : +- Project [cast(f2#x as int) AS f2#x] |
| : : +- Project [f2#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS f2#x] |
| : : +- LocalRelation [col1#x] |
| : +- SubqueryAlias zt3 |
| : +- View (`zt3`, [f3#x]) |
| : +- Relation [f3#x] parquet |
| +- SubqueryAlias zv1 |
| +- View (`zv1`, [f1#x, junk#x]) |
| +- Project [cast(f1#x as int) AS f1#x, cast(junk#x as string) AS junk#x] |
| +- Project [f1#x, dummy AS junk#x] |
| +- SubqueryAlias zt1 |
| +- View (`zt1`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select udf(a.unique2), udf(a.ten), udf(b.tenthous), udf(b.unique2), udf(b.hundred) |
| from tenk1 a left join tenk1 b on a.unique2 = udf(b.tenthous) |
| where udf(a.unique1) = 42 and |
| ((udf(b.unique2) is null and udf(a.ten) = 2) or udf(udf(b.hundred)) = udf(udf(3))) |
| -- !query analysis |
| Project [cast(udf(cast(unique2#x as string)) as int) AS udf(unique2)#x, cast(udf(cast(ten#x as string)) as int) AS udf(ten)#x, cast(udf(cast(tenthous#x as string)) as int) AS udf(tenthous)#x, cast(udf(cast(unique2#x as string)) as int) AS udf(unique2)#x, cast(udf(cast(hundred#x as string)) as int) AS udf(hundred)#x] |
| +- Filter ((cast(udf(cast(unique1#x as string)) as int) = 42) AND ((isnull(cast(udf(cast(unique2#x as string)) as int)) AND (cast(udf(cast(ten#x as string)) as int) = 2)) OR (cast(udf(cast(cast(udf(cast(hundred#x as string)) as int) as string)) as int) = cast(udf(cast(cast(udf(cast(3 as string)) as int) as string)) as int)))) |
| +- Join LeftOuter, (unique2#x = cast(udf(cast(tenthous#x as string)) as int)) |
| :- SubqueryAlias a |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias b |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| create or replace temporary view a (i integer) using parquet |
| -- !query analysis |
| CreateTempViewUsing [tableIdent:`a` StructType(StructField(i,IntegerType,true)) replace:true provider:parquet Map() |
| |
| |
| -- !query |
| create or replace temporary view b (x integer, y integer) using parquet |
| -- !query analysis |
| CreateTempViewUsing [tableIdent:`b` StructType(StructField(x,IntegerType,true),StructField(y,IntegerType,true)) replace:true provider:parquet Map() |
| |
| |
| -- !query |
| select * from a left join b on udf(i) = x and i = udf(y) and udf(x) = udf(i) |
| -- !query analysis |
| Project [i#x, x#x, y#x] |
| +- Join LeftOuter, (((cast(udf(cast(i#x as string)) as int) = x#x) AND (i#x = cast(udf(cast(y#x as string)) as int))) AND (cast(udf(cast(x#x as string)) as int) = cast(udf(cast(i#x as string)) as int))) |
| :- SubqueryAlias a |
| : +- View (`a`, [i#x]) |
| : +- Relation [i#x] parquet |
| +- SubqueryAlias b |
| +- View (`b`, [x#x, y#x]) |
| +- Relation [x#x,y#x] parquet |
| |
| |
| -- !query |
| select udf(t1.q2), udf(count(t2.q1, t2.q2)) |
| from int8_tbl t1 left join int8_tbl t2 on (udf(udf(t1.q2)) = t2.q1) |
| group by udf(t1.q2) order by 1 |
| -- !query analysis |
| Sort [udf(q2)#xL ASC NULLS FIRST], true |
| +- Aggregate [cast(udf(cast(q2#xL as string)) as bigint)], [cast(udf(cast(q2#xL as string)) as bigint) AS udf(q2)#xL, cast(udf(cast(count(q1#xL, q2#xL) as string)) as bigint) AS udf(count(q1, q2))#xL] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(q2#xL as string)) as bigint) as string)) as bigint) = q1#xL) |
| :- SubqueryAlias t1 |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias t2 |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select udf(udf(t1.q2)), udf(count(t2.q1, t2.q2)) |
| from int8_tbl t1 left join (select * from int8_tbl) t2 on (udf(udf(t1.q2)) = udf(t2.q1)) |
| group by udf(udf(t1.q2)) order by 1 |
| -- !query analysis |
| Sort [udf(udf(q2))#xL ASC NULLS FIRST], true |
| +- Aggregate [cast(udf(cast(cast(udf(cast(q2#xL as string)) as bigint) as string)) as bigint)], [cast(udf(cast(cast(udf(cast(q2#xL as string)) as bigint) as string)) as bigint) AS udf(udf(q2))#xL, cast(udf(cast(count(q1#xL, q2#xL) as string)) as bigint) AS udf(count(q1, q2))#xL] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(q2#xL as string)) as bigint) as string)) as bigint) = cast(udf(cast(q1#xL as string)) as bigint)) |
| :- SubqueryAlias t1 |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias t2 |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select udf(t1.q2) as q2, udf(udf(count(t2.q1, t2.q2))) |
| from int8_tbl t1 left join |
| (select udf(q1) as q1, case when q2=1 then 1 else q2 end as q2 from int8_tbl) t2 |
| on (udf(t1.q2) = udf(t2.q1)) |
| group by t1.q2 order by 1 |
| -- !query analysis |
| Sort [q2#xL ASC NULLS FIRST], true |
| +- Aggregate [q2#xL], [cast(udf(cast(q2#xL as string)) as bigint) AS q2#xL, cast(udf(cast(cast(udf(cast(count(q1#xL, q2#xL) as string)) as bigint) as string)) as bigint) AS udf(udf(count(q1, q2)))#xL] |
| +- Join LeftOuter, (cast(udf(cast(q2#xL as string)) as bigint) = cast(udf(cast(q1#xL as string)) as bigint)) |
| :- SubqueryAlias t1 |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias t2 |
| +- Project [cast(udf(cast(q1#xL as string)) as bigint) AS q1#xL, CASE WHEN (q2#xL = cast(1 as bigint)) THEN cast(1 as bigint) ELSE q2#xL END AS q2#xL] |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| create or replace temporary view a as select * from |
| (values ('p'), ('q')) |
| as v(code) |
| -- !query analysis |
| CreateViewCommand `a`, select * from |
| (values ('p'), ('q')) |
| as v(code), false, true, LocalTempView, true |
| +- Project [code#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS code#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create or replace temporary view b as select * from |
| (values ('p', 1), ('p', 2)) |
| as v(a, num) |
| -- !query analysis |
| CreateViewCommand `b`, select * from |
| (values ('p', 1), ('p', 2)) |
| as v(a, num), false, true, LocalTempView, true |
| +- Project [a#x, num#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS a#x, col2#x AS num#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| create or replace temporary view c as select * from |
| (values ('A', 'p'), ('B', 'q'), ('C', null)) |
| as v(name, a) |
| -- !query analysis |
| CreateViewCommand `c`, select * from |
| (values ('A', 'p'), ('B', 'q'), ('C', null)) |
| as v(name, a), false, true, LocalTempView, true |
| +- Project [name#x, a#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS name#x, col2#x AS a#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select udf(c.name), udf(ss.code), udf(ss.b_cnt), udf(ss.const) |
| from c left join |
| (select a.code, coalesce(b_grp.cnt, 0) as b_cnt, -1 as const |
| from a left join |
| (select udf(count(1)) as cnt, b.a as a from b group by b.a) as b_grp |
| on udf(a.code) = udf(udf(b_grp.a)) |
| ) as ss |
| on (udf(udf(c.a)) = udf(ss.code)) |
| order by c.name |
| -- !query analysis |
| Project [udf(name)#x, udf(code)#x, udf(b_cnt)#xL, udf(const)#x] |
| +- Sort [name#x ASC NULLS FIRST], true |
| +- Project [cast(udf(cast(name#x as string)) as string) AS udf(name)#x, cast(udf(cast(code#x as string)) as string) AS udf(code)#x, cast(udf(cast(b_cnt#xL as string)) as bigint) AS udf(b_cnt)#xL, cast(udf(cast(const#x as string)) as int) AS udf(const)#x, name#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(a#x as string)) as string) as string)) as string) = cast(udf(cast(code#x as string)) as string)) |
| :- SubqueryAlias c |
| : +- View (`c`, [name#x, a#x]) |
| : +- Project [cast(name#x as string) AS name#x, cast(a#x as string) AS a#x] |
| : +- Project [name#x, a#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS name#x, col2#x AS a#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias ss |
| +- Project [code#x, coalesce(cnt#xL, cast(0 as bigint)) AS b_cnt#xL, -1 AS const#x] |
| +- Join LeftOuter, (cast(udf(cast(code#x as string)) as string) = cast(udf(cast(cast(udf(cast(a#x as string)) as string) as string)) as string)) |
| :- SubqueryAlias a |
| : +- View (`a`, [code#x]) |
| : +- Project [cast(code#x as string) AS code#x] |
| : +- Project [code#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS code#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias b_grp |
| +- Aggregate [a#x], [cast(udf(cast(count(1) as string)) as bigint) AS cnt#xL, a#x AS a#x] |
| +- SubqueryAlias b |
| +- View (`b`, [a#x, num#x]) |
| +- Project [cast(a#x as string) AS a#x, cast(num#x as int) AS num#x] |
| +- Project [a#x, num#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS a#x, col2#x AS num#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| SELECT * FROM |
| ( SELECT 1 as key1 ) sub1 |
| LEFT JOIN |
| ( SELECT sub3.key3, sub4.value2, COALESCE(sub4.value2, 66) as value3 FROM |
| ( SELECT 1 as key3 ) sub3 |
| LEFT JOIN |
| ( SELECT udf(sub5.key5) as key5, udf(udf(COALESCE(sub6.value1, 1))) as value2 FROM |
| ( SELECT 1 as key5 ) sub5 |
| LEFT JOIN |
| ( SELECT 2 as key6, 42 as value1 ) sub6 |
| ON sub5.key5 = udf(sub6.key6) |
| ) sub4 |
| ON udf(sub4.key5) = sub3.key3 |
| ) sub2 |
| ON udf(udf(sub1.key1)) = udf(udf(sub2.key3)) |
| -- !query analysis |
| Project [key1#x, key3#x, value2#x, value3#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(key1#x as string)) as int) as string)) as int) = cast(udf(cast(cast(udf(cast(key3#x as string)) as int) as string)) as int)) |
| :- SubqueryAlias sub1 |
| : +- Project [1 AS key1#x] |
| : +- OneRowRelation |
| +- SubqueryAlias sub2 |
| +- Project [key3#x, value2#x, coalesce(value2#x, 66) AS value3#x] |
| +- Join LeftOuter, (cast(udf(cast(key5#x as string)) as int) = key3#x) |
| :- SubqueryAlias sub3 |
| : +- Project [1 AS key3#x] |
| : +- OneRowRelation |
| +- SubqueryAlias sub4 |
| +- Project [cast(udf(cast(key5#x as string)) as int) AS key5#x, cast(udf(cast(cast(udf(cast(coalesce(value1#x, 1) as string)) as int) as string)) as int) AS value2#x] |
| +- Join LeftOuter, (key5#x = cast(udf(cast(key6#x as string)) as int)) |
| :- SubqueryAlias sub5 |
| : +- Project [1 AS key5#x] |
| : +- OneRowRelation |
| +- SubqueryAlias sub6 |
| +- Project [2 AS key6#x, 42 AS value1#x] |
| +- OneRowRelation |
| |
| |
| -- !query |
| SELECT * FROM |
| ( SELECT 1 as key1 ) sub1 |
| LEFT JOIN |
| ( SELECT udf(sub3.key3) as key3, udf(value2), udf(COALESCE(value2, 66)) as value3 FROM |
| ( SELECT 1 as key3 ) sub3 |
| LEFT JOIN |
| ( SELECT sub5.key5, COALESCE(sub6.value1, 1) as value2 FROM |
| ( SELECT 1 as key5 ) sub5 |
| LEFT JOIN |
| ( SELECT 2 as key6, 42 as value1 ) sub6 |
| ON udf(udf(sub5.key5)) = sub6.key6 |
| ) sub4 |
| ON sub4.key5 = sub3.key3 |
| ) sub2 |
| ON sub1.key1 = udf(udf(sub2.key3)) |
| -- !query analysis |
| Project [key1#x, key3#x, udf(value2)#x, value3#x] |
| +- Join LeftOuter, (key1#x = cast(udf(cast(cast(udf(cast(key3#x as string)) as int) as string)) as int)) |
| :- SubqueryAlias sub1 |
| : +- Project [1 AS key1#x] |
| : +- OneRowRelation |
| +- SubqueryAlias sub2 |
| +- Project [cast(udf(cast(key3#x as string)) as int) AS key3#x, cast(udf(cast(value2#x as string)) as int) AS udf(value2)#x, cast(udf(cast(coalesce(value2#x, 66) as string)) as int) AS value3#x] |
| +- Join LeftOuter, (key5#x = key3#x) |
| :- SubqueryAlias sub3 |
| : +- Project [1 AS key3#x] |
| : +- OneRowRelation |
| +- SubqueryAlias sub4 |
| +- Project [key5#x, coalesce(value1#x, 1) AS value2#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(key5#x as string)) as int) as string)) as int) = key6#x) |
| :- SubqueryAlias sub5 |
| : +- Project [1 AS key5#x] |
| : +- OneRowRelation |
| +- SubqueryAlias sub6 |
| +- Project [2 AS key6#x, 42 AS value1#x] |
| +- OneRowRelation |
| |
| |
| -- !query |
| SELECT udf(qq), udf(udf(unique1)) |
| FROM |
| ( SELECT udf(COALESCE(q1, 0)) AS qq FROM int8_tbl a ) AS ss1 |
| FULL OUTER JOIN |
| ( SELECT udf(udf(COALESCE(q2, -1))) AS qq FROM int8_tbl b ) AS ss2 |
| USING (qq) |
| INNER JOIN tenk1 c ON udf(qq) = udf(unique2) |
| -- !query analysis |
| Project [cast(udf(cast(qq#xL as string)) as bigint) AS udf(qq)#xL, cast(udf(cast(cast(udf(cast(unique1#x as string)) as int) as string)) as int) AS udf(udf(unique1))#x] |
| +- Join Inner, (cast(udf(cast(qq#xL as string)) as bigint) = cast(cast(udf(cast(unique2#x as string)) as int) as bigint)) |
| :- Project [coalesce(qq#xL, qq#xL) AS qq#xL] |
| : +- Join FullOuter, (qq#xL = qq#xL) |
| : :- SubqueryAlias ss1 |
| : : +- Project [cast(udf(cast(coalesce(q1#xL, cast(0 as bigint)) as string)) as bigint) AS qq#xL] |
| : : +- SubqueryAlias a |
| : : +- SubqueryAlias int8_tbl |
| : : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : : +- Project [q1#xL, q2#xL] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : : +- LocalRelation [col1#xL, col2#xL] |
| : +- SubqueryAlias ss2 |
| : +- Project [cast(udf(cast(cast(udf(cast(coalesce(q2#xL, cast(-1 as bigint)) as string)) as bigint) as string)) as bigint) AS qq#xL] |
| : +- SubqueryAlias b |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias c |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| create or replace temporary view nt1 as select * from |
| (values(1,true,true), (2,true,false), (3,false,false)) |
| as v(id, a1, a2) |
| -- !query analysis |
| CreateViewCommand `nt1`, select * from |
| (values(1,true,true), (2,true,false), (3,false,false)) |
| as v(id, a1, a2), false, true, LocalTempView, true |
| +- Project [id#x, a1#x, a2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x, col2#x AS a1#x, col3#x AS a2#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| create or replace temporary view nt2 as select * from |
| (values(1,1,true,true), (2,2,true,false), (3,3,false,false)) |
| as v(id, nt1_id, b1, b2) |
| -- !query analysis |
| CreateViewCommand `nt2`, select * from |
| (values(1,1,true,true), (2,2,true,false), (3,3,false,false)) |
| as v(id, nt1_id, b1, b2), false, true, LocalTempView, true |
| +- Project [id#x, nt1_id#x, b1#x, b2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x, col2#x AS nt1_id#x, col3#x AS b1#x, col4#x AS b2#x] |
| +- LocalRelation [col1#x, col2#x, col3#x, col4#x] |
| |
| |
| -- !query |
| create or replace temporary view nt3 as select * from |
| (values(1,1,true), (2,2,false), (3,3,true)) |
| as v(id, nt2_id, c1) |
| -- !query analysis |
| CreateViewCommand `nt3`, select * from |
| (values(1,1,true), (2,2,false), (3,3,true)) |
| as v(id, nt2_id, c1), false, true, LocalTempView, true |
| +- Project [id#x, nt2_id#x, c1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x, col2#x AS nt2_id#x, col3#x AS c1#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| select udf(nt3.id) |
| from nt3 as nt3 |
| left join |
| (select nt2.*, (udf(nt2.b1) and udf(ss1.a3)) AS b3 |
| from nt2 as nt2 |
| left join |
| (select nt1.*, (udf(nt1.id) is not null) as a3 from nt1) as ss1 |
| on ss1.id = udf(udf(nt2.nt1_id)) |
| ) as ss2 |
| on udf(ss2.id) = nt3.nt2_id |
| where udf(nt3.id) = 1 and udf(ss2.b3) |
| -- !query analysis |
| Project [cast(udf(cast(id#x as string)) as int) AS udf(id)#x] |
| +- Filter ((cast(udf(cast(id#x as string)) as int) = 1) AND cast(udf(cast(b3#x as string)) as boolean)) |
| +- Join LeftOuter, (cast(udf(cast(id#x as string)) as int) = nt2_id#x) |
| :- SubqueryAlias nt3 |
| : +- SubqueryAlias nt3 |
| : +- View (`nt3`, [id#x, nt2_id#x, c1#x]) |
| : +- Project [cast(id#x as int) AS id#x, cast(nt2_id#x as int) AS nt2_id#x, cast(c1#x as boolean) AS c1#x] |
| : +- Project [id#x, nt2_id#x, c1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS id#x, col2#x AS nt2_id#x, col3#x AS c1#x] |
| : +- LocalRelation [col1#x, col2#x, col3#x] |
| +- SubqueryAlias ss2 |
| +- Project [id#x, nt1_id#x, b1#x, b2#x, (cast(udf(cast(b1#x as string)) as boolean) AND cast(udf(cast(a3#x as string)) as boolean)) AS b3#x] |
| +- Join LeftOuter, (id#x = cast(udf(cast(cast(udf(cast(nt1_id#x as string)) as int) as string)) as int)) |
| :- SubqueryAlias nt2 |
| : +- SubqueryAlias nt2 |
| : +- View (`nt2`, [id#x, nt1_id#x, b1#x, b2#x]) |
| : +- Project [cast(id#x as int) AS id#x, cast(nt1_id#x as int) AS nt1_id#x, cast(b1#x as boolean) AS b1#x, cast(b2#x as boolean) AS b2#x] |
| : +- Project [id#x, nt1_id#x, b1#x, b2#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS id#x, col2#x AS nt1_id#x, col3#x AS b1#x, col4#x AS b2#x] |
| : +- LocalRelation [col1#x, col2#x, col3#x, col4#x] |
| +- SubqueryAlias ss1 |
| +- Project [id#x, a1#x, a2#x, isnotnull(cast(udf(cast(id#x as string)) as int)) AS a3#x] |
| +- SubqueryAlias nt1 |
| +- View (`nt1`, [id#x, a1#x, a2#x]) |
| +- Project [cast(id#x as int) AS id#x, cast(a1#x as boolean) AS a1#x, cast(a2#x as boolean) AS a2#x] |
| +- Project [id#x, a1#x, a2#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x, col2#x AS a1#x, col3#x AS a2#x] |
| +- LocalRelation [col1#x, col2#x, col3#x] |
| |
| |
| -- !query |
| select * from int4_tbl a full join int4_tbl b on true |
| -- !query analysis |
| Project [f1#x, f1#x] |
| +- Join FullOuter, true |
| :- SubqueryAlias a |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias b |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from int4_tbl a full join int4_tbl b on false |
| -- !query analysis |
| Project [f1#x, f1#x] |
| +- Join FullOuter, false |
| :- SubqueryAlias a |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias b |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select udf(count(*)) from |
| tenk1 a join tenk1 b on udf(a.unique1) = udf(b.unique2) |
| left join tenk1 c on udf(a.unique2) = udf(b.unique1) and udf(c.thousand) = udf(udf(a.thousand)) |
| join int4_tbl on udf(b.thousand) = f1 |
| -- !query analysis |
| Aggregate [cast(udf(cast(count(1) as string)) as bigint) AS udf(count(1))#xL] |
| +- Join Inner, (cast(udf(cast(thousand#x as string)) as int) = f1#x) |
| :- Join LeftOuter, ((cast(udf(cast(unique2#x as string)) as int) = cast(udf(cast(unique1#x as string)) as int)) AND (cast(udf(cast(thousand#x as string)) as int) = cast(udf(cast(cast(udf(cast(thousand#x as string)) as int) as string)) as int))) |
| : :- Join Inner, (cast(udf(cast(unique1#x as string)) as int) = cast(udf(cast(unique2#x as string)) as int)) |
| : : :- SubqueryAlias a |
| : : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : : +- SubqueryAlias b |
| : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : +- SubqueryAlias c |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select udf(b.unique1) from |
| tenk1 a join tenk1 b on udf(a.unique1) = udf(b.unique2) |
| left join tenk1 c on udf(b.unique1) = 42 and c.thousand = udf(a.thousand) |
| join int4_tbl i1 on udf(b.thousand) = udf(udf(f1)) |
| right join int4_tbl i2 on udf(udf(i2.f1)) = udf(b.tenthous) |
| order by udf(1) |
| -- !query analysis |
| Sort [cast(udf(cast(1 as string)) as int) ASC NULLS FIRST], true |
| +- Project [cast(udf(cast(unique1#x as string)) as int) AS udf(unique1)#x] |
| +- Join RightOuter, (cast(udf(cast(cast(udf(cast(f1#x as string)) as int) as string)) as int) = cast(udf(cast(tenthous#x as string)) as int)) |
| :- Join Inner, (cast(udf(cast(thousand#x as string)) as int) = cast(udf(cast(cast(udf(cast(f1#x as string)) as int) as string)) as int)) |
| : :- Join LeftOuter, ((cast(udf(cast(unique1#x as string)) as int) = 42) AND (thousand#x = cast(udf(cast(thousand#x as string)) as int))) |
| : : :- Join Inner, (cast(udf(cast(unique1#x as string)) as int) = cast(udf(cast(unique2#x as string)) as int)) |
| : : : :- SubqueryAlias a |
| : : : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : : : +- SubqueryAlias b |
| : : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : : +- SubqueryAlias c |
| : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : +- SubqueryAlias i1 |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias i2 |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from |
| ( |
| select udf(unique1), udf(q1), udf(udf(coalesce(unique1, -1)) + udf(q1)) as fault |
| from int8_tbl left join tenk1 on (udf(q2) = udf(unique2)) |
| ) ss |
| where udf(fault) = udf(122) |
| order by udf(fault) |
| -- !query analysis |
| Sort [cast(udf(cast(fault#xL as string)) as bigint) ASC NULLS FIRST], true |
| +- Project [udf(unique1)#x, udf(q1)#xL, fault#xL] |
| +- Filter (cast(udf(cast(fault#xL as string)) as bigint) = cast(cast(udf(cast(122 as string)) as int) as bigint)) |
| +- SubqueryAlias ss |
| +- Project [cast(udf(cast(unique1#x as string)) as int) AS udf(unique1)#x, cast(udf(cast(q1#xL as string)) as bigint) AS udf(q1)#xL, cast(udf(cast((cast(cast(udf(cast(coalesce(unique1#x, -1) as string)) as int) as bigint) + cast(udf(cast(q1#xL as string)) as bigint)) as string)) as bigint) AS fault#xL] |
| +- Join LeftOuter, (cast(udf(cast(q2#xL as string)) as bigint) = cast(cast(udf(cast(unique2#x as string)) as int) as bigint)) |
| :- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select udf(q1), udf(unique2), udf(thousand), udf(hundred) |
| from int8_tbl a left join tenk1 b on udf(q1) = udf(unique2) |
| where udf(coalesce(thousand,123)) = udf(q1) and udf(q1) = udf(udf(coalesce(hundred,123))) |
| -- !query analysis |
| Project [cast(udf(cast(q1#xL as string)) as bigint) AS udf(q1)#xL, cast(udf(cast(unique2#x as string)) as int) AS udf(unique2)#x, cast(udf(cast(thousand#x as string)) as int) AS udf(thousand)#x, cast(udf(cast(hundred#x as string)) as int) AS udf(hundred)#x] |
| +- Filter ((cast(cast(udf(cast(coalesce(thousand#x, 123) as string)) as int) as bigint) = cast(udf(cast(q1#xL as string)) as bigint)) AND (cast(udf(cast(q1#xL as string)) as bigint) = cast(cast(udf(cast(cast(udf(cast(coalesce(hundred#x, 123) as string)) as int) as string)) as int) as bigint))) |
| +- Join LeftOuter, (cast(udf(cast(q1#xL as string)) as bigint) = cast(cast(udf(cast(unique2#x as string)) as int) as bigint)) |
| :- SubqueryAlias a |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias b |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select udf(f1), udf(unique2), case when udf(udf(unique2)) is null then udf(f1) else 0 end |
| from int4_tbl a left join tenk1 b on udf(f1) = udf(udf(unique2)) |
| where (case when udf(unique2) is null then udf(f1) else 0 end) = 0 |
| -- !query analysis |
| Project [cast(udf(cast(f1#x as string)) as int) AS udf(f1)#x, cast(udf(cast(unique2#x as string)) as int) AS udf(unique2)#x, CASE WHEN isnull(cast(udf(cast(cast(udf(cast(unique2#x as string)) as int) as string)) as int)) THEN cast(udf(cast(f1#x as string)) as int) ELSE 0 END AS CASE WHEN (udf(udf(unique2)) IS NULL) THEN udf(f1) ELSE 0 END#x] |
| +- Filter (CASE WHEN isnull(cast(udf(cast(unique2#x as string)) as int)) THEN cast(udf(cast(f1#x as string)) as int) ELSE 0 END = 0) |
| +- Join LeftOuter, (cast(udf(cast(f1#x as string)) as int) = cast(udf(cast(cast(udf(cast(unique2#x as string)) as int) as string)) as int)) |
| :- SubqueryAlias a |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias b |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select udf(a.unique1), udf(b.unique1), udf(c.unique1), udf(coalesce(b.twothousand, a.twothousand)) |
| from tenk1 a left join tenk1 b on udf(b.thousand) = a.unique1 left join tenk1 c on udf(c.unique2) = udf(coalesce(b.twothousand, a.twothousand)) |
| where a.unique2 < udf(10) and udf(udf(coalesce(b.twothousand, a.twothousand))) = udf(44) |
| -- !query analysis |
| Project [cast(udf(cast(unique1#x as string)) as int) AS udf(unique1)#x, cast(udf(cast(unique1#x as string)) as int) AS udf(unique1)#x, cast(udf(cast(unique1#x as string)) as int) AS udf(unique1)#x, cast(udf(cast(coalesce(twothousand#x, twothousand#x) as string)) as int) AS udf(coalesce(twothousand, twothousand))#x] |
| +- Filter ((unique2#x < cast(udf(cast(10 as string)) as int)) AND (cast(udf(cast(cast(udf(cast(coalesce(twothousand#x, twothousand#x) as string)) as int) as string)) as int) = cast(udf(cast(44 as string)) as int))) |
| +- Join LeftOuter, (cast(udf(cast(unique2#x as string)) as int) = cast(udf(cast(coalesce(twothousand#x, twothousand#x) as string)) as int)) |
| :- Join LeftOuter, (cast(udf(cast(thousand#x as string)) as int) = unique1#x) |
| : :- SubqueryAlias a |
| : : +- SubqueryAlias spark_catalog.default.tenk1 |
| : : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| : +- SubqueryAlias b |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias c |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select * from |
| text_tbl t1 |
| inner join int8_tbl i8 |
| on udf(i8.q2) = udf(udf(456)) |
| right join text_tbl t2 |
| on udf(t1.f1) = udf(udf('doh!')) |
| left join int4_tbl i4 |
| on udf(udf(i8.q1)) = i4.f1 |
| -- !query analysis |
| Project [f1#x, q1#xL, q2#xL, f1#x, f1#x] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(q1#xL as string)) as bigint) as string)) as bigint) = cast(f1#x as bigint)) |
| :- Join RightOuter, (cast(udf(cast(f1#x as string)) as string) = cast(udf(cast(cast(udf(cast(doh! as string)) as string) as string)) as string)) |
| : :- Join Inner, (cast(udf(cast(q2#xL as string)) as bigint) = cast(cast(udf(cast(cast(udf(cast(456 as string)) as int) as string)) as int) as bigint)) |
| : : :- SubqueryAlias t1 |
| : : : +- SubqueryAlias text_tbl |
| : : : +- View (`TEXT_TBL`, [f1#x]) |
| : : : +- Project [cast(f1#x as string) AS f1#x] |
| : : : +- Project [f1#x] |
| : : : +- SubqueryAlias v |
| : : : +- Project [col1#x AS f1#x] |
| : : : +- LocalRelation [col1#x] |
| : : +- SubqueryAlias i8 |
| : : +- SubqueryAlias int8_tbl |
| : : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : : +- Project [q1#xL, q2#xL] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : : +- LocalRelation [col1#xL, col2#xL] |
| : +- SubqueryAlias t2 |
| : +- SubqueryAlias text_tbl |
| : +- View (`TEXT_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as string) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias i4 |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from |
| (select udf(udf(1)) as id) as xx |
| left join |
| (tenk1 as a1 full join (select udf(1) as id) as yy on (udf(a1.unique1) = udf(yy.id))) |
| on (xx.id = udf(udf(coalesce(yy.id)))) |
| -- !query analysis |
| Project [id#x, unique1#x, unique2#x, two#x, four#x, ten#x, twenty#x, hundred#x, thousand#x, twothousand#x, fivethous#x, tenthous#x, odd#x, even#x, stringu1#x, stringu2#x, string4#x, id#x] |
| +- Join LeftOuter, (id#x = cast(udf(cast(cast(udf(cast(coalesce(id#x) as string)) as int) as string)) as int)) |
| :- SubqueryAlias xx |
| : +- Project [cast(udf(cast(cast(udf(cast(1 as string)) as int) as string)) as int) AS id#x] |
| : +- OneRowRelation |
| +- Join FullOuter, (cast(udf(cast(unique1#x as string)) as int) = cast(udf(cast(id#x as string)) as int)) |
| :- SubqueryAlias a1 |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias yy |
| +- Project [cast(udf(cast(1 as string)) as int) AS id#x] |
| +- OneRowRelation |
| |
| |
| -- !query |
| select udf(a.q2), udf(b.q1) |
| from int8_tbl a left join int8_tbl b on udf(a.q2) = coalesce(b.q1, 1) |
| where udf(udf(coalesce(b.q1, 1)) > 0) |
| -- !query analysis |
| Project [cast(udf(cast(q2#xL as string)) as bigint) AS udf(q2)#xL, cast(udf(cast(q1#xL as string)) as bigint) AS udf(q1)#xL] |
| +- Filter cast(udf(cast((cast(udf(cast(coalesce(q1#xL, cast(1 as bigint)) as string)) as bigint) > cast(0 as bigint)) as string)) as boolean) |
| +- Join LeftOuter, (cast(udf(cast(q2#xL as string)) as bigint) = coalesce(q1#xL, cast(1 as bigint))) |
| :- SubqueryAlias a |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias b |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| create or replace temporary view parent as select * from |
| (values (1, 10), (2, 20), (3, 30)) |
| as v(k, pd) |
| -- !query analysis |
| CreateViewCommand `parent`, select * from |
| (values (1, 10), (2, 20), (3, 30)) |
| as v(k, pd), false, true, LocalTempView, true |
| +- Project [k#x, pd#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS k#x, col2#x AS pd#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| create or replace temporary view child as select * from |
| (values (1, 100), (4, 400)) |
| as v(k, cd) |
| -- !query analysis |
| CreateViewCommand `child`, select * from |
| (values (1, 100), (4, 400)) |
| as v(k, cd), false, true, LocalTempView, true |
| +- Project [k#x, cd#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS k#x, col2#x AS cd#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select p.* from parent p left join child c on (udf(p.k) = udf(c.k)) |
| -- !query analysis |
| Project [k#x, pd#x] |
| +- Join LeftOuter, (cast(udf(cast(k#x as string)) as int) = cast(udf(cast(k#x as string)) as int)) |
| :- SubqueryAlias p |
| : +- SubqueryAlias parent |
| : +- View (`parent`, [k#x, pd#x]) |
| : +- Project [cast(k#x as int) AS k#x, cast(pd#x as int) AS pd#x] |
| : +- Project [k#x, pd#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS k#x, col2#x AS pd#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias c |
| +- SubqueryAlias child |
| +- View (`child`, [k#x, cd#x]) |
| +- Project [cast(k#x as int) AS k#x, cast(cd#x as int) AS cd#x] |
| +- Project [k#x, cd#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS k#x, col2#x AS cd#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select p.*, linked from parent p |
| left join (select c.*, udf(udf(true)) as linked from child c) as ss |
| on (udf(p.k) = udf(udf(ss.k))) |
| -- !query analysis |
| Project [k#x, pd#x, linked#x] |
| +- Join LeftOuter, (cast(udf(cast(k#x as string)) as int) = cast(udf(cast(cast(udf(cast(k#x as string)) as int) as string)) as int)) |
| :- SubqueryAlias p |
| : +- SubqueryAlias parent |
| : +- View (`parent`, [k#x, pd#x]) |
| : +- Project [cast(k#x as int) AS k#x, cast(pd#x as int) AS pd#x] |
| : +- Project [k#x, pd#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS k#x, col2#x AS pd#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias ss |
| +- Project [k#x, cd#x, cast(udf(cast(cast(udf(cast(true as string)) as boolean) as string)) as boolean) AS linked#x] |
| +- SubqueryAlias c |
| +- SubqueryAlias child |
| +- View (`child`, [k#x, cd#x]) |
| +- Project [cast(k#x as int) AS k#x, cast(cd#x as int) AS cd#x] |
| +- Project [k#x, cd#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS k#x, col2#x AS cd#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select p.* from |
| parent p left join child c on (udf(p.k) = c.k) |
| where p.k = udf(1) and udf(udf(p.k)) = udf(udf(2)) |
| -- !query analysis |
| Project [k#x, pd#x] |
| +- Filter ((k#x = cast(udf(cast(1 as string)) as int)) AND (cast(udf(cast(cast(udf(cast(k#x as string)) as int) as string)) as int) = cast(udf(cast(cast(udf(cast(2 as string)) as int) as string)) as int))) |
| +- Join LeftOuter, (cast(udf(cast(k#x as string)) as int) = k#x) |
| :- SubqueryAlias p |
| : +- SubqueryAlias parent |
| : +- View (`parent`, [k#x, pd#x]) |
| : +- Project [cast(k#x as int) AS k#x, cast(pd#x as int) AS pd#x] |
| : +- Project [k#x, pd#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS k#x, col2#x AS pd#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias c |
| +- SubqueryAlias child |
| +- View (`child`, [k#x, cd#x]) |
| +- Project [cast(k#x as int) AS k#x, cast(cd#x as int) AS cd#x] |
| +- Project [k#x, cd#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS k#x, col2#x AS cd#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select p.* from |
| (parent p left join child c on (udf(p.k) = c.k)) join parent x on p.k = udf(x.k) |
| where udf(p.k) = udf(1) and udf(udf(p.k)) = udf(udf(2)) |
| -- !query analysis |
| Project [k#x, pd#x] |
| +- Filter ((cast(udf(cast(k#x as string)) as int) = cast(udf(cast(1 as string)) as int)) AND (cast(udf(cast(cast(udf(cast(k#x as string)) as int) as string)) as int) = cast(udf(cast(cast(udf(cast(2 as string)) as int) as string)) as int))) |
| +- Join Inner, (k#x = cast(udf(cast(k#x as string)) as int)) |
| :- Join LeftOuter, (cast(udf(cast(k#x as string)) as int) = k#x) |
| : :- SubqueryAlias p |
| : : +- SubqueryAlias parent |
| : : +- View (`parent`, [k#x, pd#x]) |
| : : +- Project [cast(k#x as int) AS k#x, cast(pd#x as int) AS pd#x] |
| : : +- Project [k#x, pd#x] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#x AS k#x, col2#x AS pd#x] |
| : : +- LocalRelation [col1#x, col2#x] |
| : +- SubqueryAlias c |
| : +- SubqueryAlias child |
| : +- View (`child`, [k#x, cd#x]) |
| : +- Project [cast(k#x as int) AS k#x, cast(cd#x as int) AS cd#x] |
| : +- Project [k#x, cd#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS k#x, col2#x AS cd#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias x |
| +- SubqueryAlias parent |
| +- View (`parent`, [k#x, pd#x]) |
| +- Project [cast(k#x as int) AS k#x, cast(pd#x as int) AS pd#x] |
| +- Project [k#x, pd#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS k#x, col2#x AS pd#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| create or replace temporary view a as select * from |
| (values (0), (1)) |
| as v(id) |
| -- !query analysis |
| CreateViewCommand `a`, select * from |
| (values (0), (1)) |
| as v(id), false, true, LocalTempView, true |
| +- Project [id#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create or replace temporary view b as select * from |
| (values (0, 0), (1, NULL)) |
| as v(id, a_id) |
| -- !query analysis |
| CreateViewCommand `b`, select * from |
| (values (0, 0), (1, NULL)) |
| as v(id, a_id), false, true, LocalTempView, true |
| +- Project [id#x, a_id#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x, col2#x AS a_id#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| SELECT * FROM b LEFT JOIN a ON (udf(b.a_id) = udf(a.id)) WHERE (udf(udf(a.id)) IS NULL OR udf(a.id) > 0) |
| -- !query analysis |
| Project [id#x, a_id#x, id#x] |
| +- Filter (isnull(cast(udf(cast(cast(udf(cast(id#x as string)) as int) as string)) as int)) OR (cast(udf(cast(id#x as string)) as int) > 0)) |
| +- Join LeftOuter, (cast(udf(cast(a_id#x as string)) as int) = cast(udf(cast(id#x as string)) as int)) |
| :- SubqueryAlias b |
| : +- View (`b`, [id#x, a_id#x]) |
| : +- Project [cast(id#x as int) AS id#x, cast(a_id#x as int) AS a_id#x] |
| : +- Project [id#x, a_id#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS id#x, col2#x AS a_id#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias a |
| +- View (`a`, [id#x]) |
| +- Project [cast(id#x as int) AS id#x] |
| +- Project [id#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| SELECT b.* FROM b LEFT JOIN a ON (udf(b.a_id) = udf(a.id)) WHERE (udf(a.id) IS NULL OR udf(udf(a.id)) > 0) |
| -- !query analysis |
| Project [id#x, a_id#x] |
| +- Filter (isnull(cast(udf(cast(id#x as string)) as int)) OR (cast(udf(cast(cast(udf(cast(id#x as string)) as int) as string)) as int) > 0)) |
| +- Join LeftOuter, (cast(udf(cast(a_id#x as string)) as int) = cast(udf(cast(id#x as string)) as int)) |
| :- SubqueryAlias b |
| : +- View (`b`, [id#x, a_id#x]) |
| : +- Project [cast(id#x as int) AS id#x, cast(a_id#x as int) AS a_id#x] |
| : +- Project [id#x, a_id#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS id#x, col2#x AS a_id#x] |
| : +- LocalRelation [col1#x, col2#x] |
| +- SubqueryAlias a |
| +- View (`a`, [id#x]) |
| +- Project [cast(id#x as int) AS id#x] |
| +- Project [id#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS id#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| create or replace temporary view innertab as select * from |
| (values (123L, 42L)) |
| as v(id, dat1) |
| -- !query analysis |
| CreateViewCommand `innertab`, select * from |
| (values (123L, 42L)) |
| as v(id, dat1), false, true, LocalTempView, true |
| +- Project [id#xL, dat1#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS id#xL, col2#xL AS dat1#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| SELECT * FROM |
| (SELECT udf(1) AS x) ss1 |
| LEFT JOIN |
| (SELECT udf(q1), udf(q2), udf(COALESCE(dat1, q1)) AS y |
| FROM int8_tbl LEFT JOIN innertab ON udf(udf(q2)) = id) ss2 |
| ON true |
| -- !query analysis |
| Project [x#x, udf(q1)#xL, udf(q2)#xL, y#xL] |
| +- Join LeftOuter, true |
| :- SubqueryAlias ss1 |
| : +- Project [cast(udf(cast(1 as string)) as int) AS x#x] |
| : +- OneRowRelation |
| +- SubqueryAlias ss2 |
| +- Project [cast(udf(cast(q1#xL as string)) as bigint) AS udf(q1)#xL, cast(udf(cast(q2#xL as string)) as bigint) AS udf(q2)#xL, cast(udf(cast(coalesce(dat1#xL, q1#xL) as string)) as bigint) AS y#xL] |
| +- Join LeftOuter, (cast(udf(cast(cast(udf(cast(q2#xL as string)) as bigint) as string)) as bigint) = id#xL) |
| :- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias innertab |
| +- View (`innertab`, [id#xL, dat1#xL]) |
| +- Project [cast(id#xL as bigint) AS id#xL, cast(dat1#xL as bigint) AS dat1#xL] |
| +- Project [id#xL, dat1#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS id#xL, col2#xL AS dat1#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select * from |
| int8_tbl x join (int4_tbl x cross join int4_tbl y) j on udf(q1) = udf(f1) |
| -- !query analysis |
| org.apache.spark.sql.AnalysisException |
| { |
| "errorClass" : "AMBIGUOUS_REFERENCE", |
| "sqlState" : "42704", |
| "messageParameters" : { |
| "name" : "`f1`", |
| "referenceNames" : "[`j`.`f1`, `j`.`f1`]" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 87, |
| "stopIndex" : 88, |
| "fragment" : "f1" |
| } ] |
| } |
| |
| |
| -- !query |
| select * from |
| int8_tbl x join (int4_tbl x cross join int4_tbl y) j on udf(q1) = udf(y.f1) |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITH_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`y`.`f1`", |
| "proposal" : "`j`.`f1`, `j`.`f1`, `x`.`q1`, `x`.`q2`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 87, |
| "stopIndex" : 90, |
| "fragment" : "y.f1" |
| } ] |
| } |
| |
| |
| -- !query |
| select * from |
| int8_tbl x join (int4_tbl x cross join int4_tbl y(ff)) j on udf(q1) = udf(udf(f1)) |
| -- !query analysis |
| Project [q1#xL, q2#xL, f1#x, ff#x] |
| +- Join Inner, (cast(udf(cast(q1#xL as string)) as bigint) = cast(cast(udf(cast(cast(udf(cast(f1#x as string)) as int) as string)) as int) as bigint)) |
| :- SubqueryAlias x |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias j |
| +- Join Cross |
| :- SubqueryAlias x |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias y |
| +- Project [f1#x AS ff#x] |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select udf(t1.uunique1) from |
| tenk1 t1 join tenk2 t2 on t1.two = udf(t2.two) |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITH_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`t1`.`uunique1`", |
| "proposal" : "`t1`.`unique1`, `t2`.`unique1`, `t1`.`unique2`, `t2`.`unique2`, `t1`.`four`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 12, |
| "stopIndex" : 22, |
| "fragment" : "t1.uunique1" |
| } ] |
| } |
| |
| |
| -- !query |
| select udf(udf(t2.uunique1)) from |
| tenk1 t1 join tenk2 t2 on udf(t1.two) = t2.two |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITH_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`t2`.`uunique1`", |
| "proposal" : "`t2`.`unique1`, `t1`.`unique1`, `t2`.`unique2`, `t1`.`unique2`, `t2`.`four`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 16, |
| "stopIndex" : 26, |
| "fragment" : "t2.uunique1" |
| } ] |
| } |
| |
| |
| -- !query |
| select udf(uunique1) from |
| tenk1 t1 join tenk2 t2 on udf(t1.two) = udf(t2.two) |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITH_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`uunique1`", |
| "proposal" : "`t1`.`unique1`, `t2`.`unique1`, `t1`.`unique2`, `t2`.`unique2`, `t1`.`ten`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 12, |
| "stopIndex" : 19, |
| "fragment" : "uunique1" |
| } ] |
| } |
| |
| |
| -- !query |
| select unique2, x.* |
| from tenk1 a, lateral (select * from int4_tbl b where f1 = a.unique1) x |
| -- !query analysis |
| Project [unique2#x, f1#x] |
| +- LateralJoin lateral-subquery#x [unique1#x], Inner |
| : +- SubqueryAlias x |
| : +- Project [f1#x] |
| : +- Filter (f1#x = outer(unique1#x)) |
| : +- SubqueryAlias b |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias a |
| +- SubqueryAlias spark_catalog.default.tenk1 |
| +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| |
| |
| -- !query |
| select unique2, x.* |
| from int4_tbl x, lateral (select unique2 from tenk1 where f1 = unique1) ss |
| -- !query analysis |
| Project [unique2#x, f1#x] |
| +- LateralJoin lateral-subquery#x [f1#x], Inner |
| : +- SubqueryAlias ss |
| : +- Project [unique2#x] |
| : +- Filter (outer(f1#x) = unique1#x) |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias x |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select unique2, x.* |
| from int4_tbl x left join lateral (select unique1, unique2 from tenk1 where f1 = unique1) ss on true |
| -- !query analysis |
| Project [unique2#x, f1#x] |
| +- LateralJoin lateral-subquery#x [f1#x], LeftOuter, true |
| : +- SubqueryAlias ss |
| : +- Project [unique1#x, unique2#x] |
| : +- Filter (outer(f1#x) = unique1#x) |
| : +- SubqueryAlias spark_catalog.default.tenk1 |
| : +- Relation spark_catalog.default.tenk1[unique1#x,unique2#x,two#x,four#x,ten#x,twenty#x,hundred#x,thousand#x,twothousand#x,fivethous#x,tenthous#x,odd#x,even#x,stringu1#x,stringu2#x,string4#x] parquet |
| +- SubqueryAlias x |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from (select f1/2 as x from int4_tbl) ss1 join int4_tbl i4 on x = f1, |
| lateral (select x) ss2(y) |
| -- !query analysis |
| Project [x#x, f1#x, y#x] |
| +- LateralJoin lateral-subquery#x [x#x], Inner |
| : +- SubqueryAlias ss2 |
| : +- Project [x#x AS y#x] |
| : +- Project [outer(x#x)] |
| : +- OneRowRelation |
| +- Join Inner, (x#x = cast(f1#x as double)) |
| :- SubqueryAlias ss1 |
| : +- Project [(cast(f1#x as double) / cast(2 as double)) AS x#x] |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias i4 |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from ((select f1/2 as x from int4_tbl) ss1 join int4_tbl i4 on x = f1) j, |
| lateral (select x) ss2(y) |
| -- !query analysis |
| Project [x#x, f1#x, y#x] |
| +- LateralJoin lateral-subquery#x [x#x], Inner |
| : +- SubqueryAlias ss2 |
| : +- Project [x#x AS y#x] |
| : +- Project [outer(x#x)] |
| : +- OneRowRelation |
| +- SubqueryAlias j |
| +- Join Inner, (x#x = cast(f1#x as double)) |
| :- SubqueryAlias ss1 |
| : +- Project [(cast(f1#x as double) / cast(2 as double)) AS x#x] |
| : +- SubqueryAlias int4_tbl |
| : +- View (`INT4_TBL`, [f1#x]) |
| : +- Project [cast(f1#x as int) AS f1#x] |
| : +- Project [f1#x] |
| : +- SubqueryAlias v |
| : +- Project [col1#x AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias i4 |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from |
| int8_tbl x left join (select q1,coalesce(q2,0) q2 from int8_tbl) y on x.q2 = y.q1, |
| lateral (select x.q1,y.q1,y.q2) v(xq1,yq1,yq2) |
| -- !query analysis |
| Project [q1#xL, q2#xL, q1#xL, q2#xL, xq1#xL, yq1#xL, yq2#xL] |
| +- LateralJoin lateral-subquery#x [q1#xL && q1#xL && q2#xL], Inner |
| : +- SubqueryAlias v |
| : +- Project [q1#xL AS xq1#xL, q1#xL AS yq1#xL, q2#xL AS yq2#xL] |
| : +- Project [outer(q1#xL), outer(q1#xL), outer(q2#xL)] |
| : +- OneRowRelation |
| +- Join LeftOuter, (q2#xL = q1#xL) |
| :- SubqueryAlias x |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias y |
| +- Project [q1#xL, coalesce(q2#xL, cast(0 as bigint)) AS q2#xL] |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select x.* from |
| int8_tbl x left join (select q1,coalesce(q2,0) q2 from int8_tbl) y on x.q2 = y.q1, |
| lateral (select x.q1,y.q1,y.q2) v(xq1,yq1,yq2) |
| -- !query analysis |
| Project [q1#xL, q2#xL] |
| +- LateralJoin lateral-subquery#x [q1#xL && q1#xL && q2#xL], Inner |
| : +- SubqueryAlias v |
| : +- Project [q1#xL AS xq1#xL, q1#xL AS yq1#xL, q2#xL AS yq2#xL] |
| : +- Project [outer(q1#xL), outer(q1#xL), outer(q2#xL)] |
| : +- OneRowRelation |
| +- Join LeftOuter, (q2#xL = q1#xL) |
| :- SubqueryAlias x |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias y |
| +- Project [q1#xL, coalesce(q2#xL, cast(0 as bigint)) AS q2#xL] |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select * from |
| int8_tbl a left join |
| lateral (select *, a.q2 as x from int8_tbl b) ss on a.q2 = ss.q1 |
| -- !query analysis |
| Project [q1#xL, q2#xL, q1#xL, q2#xL, x#xL] |
| +- LateralJoin lateral-subquery#x [q2#xL], LeftOuter, (q2#xL = q1#xL) |
| : +- SubqueryAlias ss |
| : +- Project [q1#xL, q2#xL, outer(q2#xL) AS x#xL] |
| : +- SubqueryAlias b |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias a |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select * from |
| int8_tbl a left join |
| lateral (select *, coalesce(a.q2, 42) as x from int8_tbl b) ss on a.q2 = ss.q1 |
| -- !query analysis |
| Project [q1#xL, q2#xL, q1#xL, q2#xL, x#xL] |
| +- LateralJoin lateral-subquery#x [q2#xL], LeftOuter, (q2#xL = q1#xL) |
| : +- SubqueryAlias ss |
| : +- Project [q1#xL, q2#xL, coalesce(outer(q2#xL), cast(42 as bigint)) AS x#xL] |
| : +- SubqueryAlias b |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias a |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select * from int4_tbl i left join |
| lateral (select * from int2_tbl j where i.f1 = j.f1) k on true |
| -- !query analysis |
| Project [f1#x, f1#x] |
| +- LateralJoin lateral-subquery#x [f1#x], LeftOuter, true |
| : +- SubqueryAlias k |
| : +- Project [f1#x] |
| : +- Filter (outer(f1#x) = cast(f1#x as int)) |
| : +- SubqueryAlias j |
| : +- SubqueryAlias int2_tbl |
| : +- View (`INT2_TBL`, [f1#x]) |
| : +- Project [cast(col1#x as smallint) AS f1#x] |
| : +- LocalRelation [col1#x] |
| +- SubqueryAlias i |
| +- SubqueryAlias int4_tbl |
| +- View (`INT4_TBL`, [f1#x]) |
| +- Project [cast(f1#x as int) AS f1#x] |
| +- Project [f1#x] |
| +- SubqueryAlias v |
| +- Project [col1#x AS f1#x] |
| +- LocalRelation [col1#x] |
| |
| |
| -- !query |
| select * from |
| int8_tbl a left join lateral |
| (select b.q1 as bq1, c.q1 as cq1, least(a.q1,b.q1,c.q1) from |
| int8_tbl b cross join int8_tbl c) ss |
| on a.q2 = ss.bq1 |
| -- !query analysis |
| Project [q1#xL, q2#xL, bq1#xL, cq1#xL, least(outer(a.q1), q1, q1)#xL] |
| +- LateralJoin lateral-subquery#x [q1#xL], LeftOuter, (q2#xL = bq1#xL) |
| : +- SubqueryAlias ss |
| : +- Project [q1#xL AS bq1#xL, q1#xL AS cq1#xL, least(outer(q1#xL), q1#xL, q1#xL) AS least(outer(a.q1), q1, q1)#xL] |
| : +- Join Cross |
| : :- SubqueryAlias b |
| : : +- SubqueryAlias int8_tbl |
| : : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : : +- Project [q1#xL, q2#xL] |
| : : +- SubqueryAlias v |
| : : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : : +- LocalRelation [col1#xL, col2#xL] |
| : +- SubqueryAlias c |
| : +- SubqueryAlias int8_tbl |
| : +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| : +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| : +- Project [q1#xL, q2#xL] |
| : +- SubqueryAlias v |
| : +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| : +- LocalRelation [col1#xL, col2#xL] |
| +- SubqueryAlias a |
| +- SubqueryAlias int8_tbl |
| +- View (`INT8_TBL`, [q1#xL, q2#xL]) |
| +- Project [cast(q1#xL as bigint) AS q1#xL, cast(q2#xL as bigint) AS q2#xL] |
| +- Project [q1#xL, q2#xL] |
| +- SubqueryAlias v |
| +- Project [col1#xL AS q1#xL, col2#xL AS q2#xL] |
| +- LocalRelation [col1#xL, col2#xL] |
| |
| |
| -- !query |
| select udf(udf(f1,g)) from int4_tbl a, (select udf(udf(f1)) as g) ss |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITHOUT_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`f1`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 56, |
| "stopIndex" : 57, |
| "fragment" : "f1" |
| } ] |
| } |
| |
| |
| -- !query |
| select udf(f1,g) from int4_tbl a, (select a.f1 as g) ss |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITHOUT_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`a`.`f1`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 43, |
| "stopIndex" : 46, |
| "fragment" : "a.f1" |
| } ] |
| } |
| |
| |
| -- !query |
| select udf(udf(f1,g)) from int4_tbl a cross join (select udf(f1) as g) ss |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITHOUT_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`f1`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 62, |
| "stopIndex" : 63, |
| "fragment" : "f1" |
| } ] |
| } |
| |
| |
| -- !query |
| select udf(f1,g) from int4_tbl a cross join (select udf(udf(a.f1)) as g) ss |
| -- !query analysis |
| org.apache.spark.sql.catalyst.ExtendedAnalysisException |
| { |
| "errorClass" : "UNRESOLVED_COLUMN.WITHOUT_SUGGESTION", |
| "sqlState" : "42703", |
| "messageParameters" : { |
| "objectName" : "`a`.`f1`" |
| }, |
| "queryContext" : [ { |
| "objectType" : "", |
| "objectName" : "", |
| "startIndex" : 61, |
| "stopIndex" : 64, |
| "fragment" : "a.f1" |
| } ] |
| } |
| |
| |
| -- !query |
| CREATE TABLE j1 (id1 int, id2 int) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`j1`, false |
| |
| |
| -- !query |
| CREATE TABLE j2 (id1 int, id2 int) USING parquet |
| -- !query analysis |
| CreateDataSourceTableCommand `spark_catalog`.`default`.`j2`, false |
| |
| |
| -- !query |
| INSERT INTO j1 values(1,1),(1,2) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j1, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j1], Append, `spark_catalog`.`default`.`j1`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j1), [id1, id2] |
| +- Project [cast(col1#x as int) AS id1#x, cast(col2#x as int) AS id2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO j2 values(1,1) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2], Append, `spark_catalog`.`default`.`j2`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2), [id1, id2] |
| +- Project [cast(col1#x as int) AS id1#x, cast(col2#x as int) AS id2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| INSERT INTO j2 values(1,2) |
| -- !query analysis |
| InsertIntoHadoopFsRelationCommand file:[not included in comparison]/{warehouse_dir}/j2, false, Parquet, [path=file:[not included in comparison]/{warehouse_dir}/j2], Append, `spark_catalog`.`default`.`j2`, org.apache.spark.sql.execution.datasources.InMemoryFileIndex(file:[not included in comparison]/{warehouse_dir}/j2), [id1, id2] |
| +- Project [cast(col1#x as int) AS id1#x, cast(col2#x as int) AS id2#x] |
| +- LocalRelation [col1#x, col2#x] |
| |
| |
| -- !query |
| select * from j1 |
| inner join j2 on udf(j1.id1) = udf(j2.id1) and udf(udf(j1.id2)) = udf(j2.id2) |
| where udf(j1.id1) % 1000 = 1 and udf(udf(j2.id1) % 1000) = 1 |
| -- !query analysis |
| Project [id1#x, id2#x, id1#x, id2#x] |
| +- Filter (((cast(udf(cast(id1#x as string)) as int) % 1000) = 1) AND (cast(udf(cast((cast(udf(cast(id1#x as string)) as int) % 1000) as string)) as int) = 1)) |
| +- Join Inner, ((cast(udf(cast(id1#x as string)) as int) = cast(udf(cast(id1#x as string)) as int)) AND (cast(udf(cast(cast(udf(cast(id2#x as string)) as int) as string)) as int) = cast(udf(cast(id2#x as string)) as int))) |
| :- SubqueryAlias spark_catalog.default.j1 |
| : +- Relation spark_catalog.default.j1[id1#x,id2#x] parquet |
| +- SubqueryAlias spark_catalog.default.j2 |
| +- Relation spark_catalog.default.j2[id1#x,id2#x] parquet |
| |
| |
| -- !query |
| drop table j1 |
| -- !query analysis |
| DropTable false, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.j1 |
| |
| |
| -- !query |
| drop table j2 |
| -- !query analysis |
| DropTable false, false |
| +- ResolvedIdentifier V2SessionCatalog(spark_catalog), default.j2 |