-- Automatically generated by SQLQueryTestSuite
-- !query
SET spark.sql.optimizer.excludedRules=org.apache.spark.sql.catalyst.optimizer.ReplaceCTERefWithRepartition
-- !query analysis
SetCommand (spark.sql.optimizer.excludedRules,Some(org.apache.spark.sql.catalyst.optimizer.ReplaceCTERefWithRepartition))


-- !query
SELECT
  (SELECT min(id) FROM range(10)),
  (SELECT sum(id) FROM range(10)),
  (SELECT count(distinct id) FROM range(10))
-- !query analysis
Project [scalar-subquery#x [] AS scalarsubquery()#xL, scalar-subquery#x [] AS scalarsubquery()#xL, scalar-subquery#x [] AS scalarsubquery()#xL]
:  :- Aggregate [min(id#xL) AS min(id)#xL]
:  :  +- Range (0, 10, step=1)
:  :- Aggregate [sum(id#xL) AS sum(id)#xL]
:  :  +- Range (0, 10, step=1)
:  +- Aggregate [count(distinct id#xL) AS count(DISTINCT id)#xL]
:     +- Range (0, 10, step=1)
+- OneRowRelation


-- !query
SET spark.sql.optimizer.excludedRules=org.apache.spark.sql.catalyst.optimizer.Optimizer$OptimizeSubqueries
-- !query analysis
SetCommand (spark.sql.optimizer.excludedRules,Some(org.apache.spark.sql.catalyst.optimizer.Optimizer$OptimizeSubqueries))


-- !query
WITH tmp AS (
  SELECT id FROM range(2)
  INTERSECT
  SELECT id FROM range(4)
)
SELECT id FROM range(3) WHERE id > (SELECT max(id) FROM tmp)
-- !query analysis
WithCTE
:- CTERelationDef xxxx, false
:  +- SubqueryAlias tmp
:     +- Intersect false
:        :- Project [id#xL]
:        :  +- Range (0, 2, step=1)
:        +- Project [id#xL]
:           +- Range (0, 4, step=1)
+- Project [id#xL]
   +- Filter (id#xL > scalar-subquery#x [])
      :  +- Aggregate [max(id#xL) AS max(id)#xL]
      :     +- SubqueryAlias tmp
      :        +- CTERelationRef xxxx, true, [id#xL], false
      +- Range (0, 3, step=1)


-- !query
SET spark.sql.optimizer.excludedRules=org.apache.spark.sql.catalyst.optimizer.RewriteLateralSubquery
-- !query analysis
SetCommand (spark.sql.optimizer.excludedRules,Some(org.apache.spark.sql.catalyst.optimizer.RewriteLateralSubquery))


-- !query
SELECT * FROM testData, LATERAL (SELECT * FROM testData) LIMIT 1
-- !query analysis
GlobalLimit 1
+- LocalLimit 1
   +- Project [key#x, value#x, key#x, value#x]
      +- LateralJoin lateral-subquery#x [], Inner
         :  +- SubqueryAlias __auto_generated_subquery_name
         :     +- Project [key#x, value#x]
         :        +- SubqueryAlias spark_catalog.default.testdata
         :           +- Relation spark_catalog.default.testdata[key#x,value#x] parquet
         +- SubqueryAlias spark_catalog.default.testdata
            +- Relation spark_catalog.default.testdata[key#x,value#x] parquet
