Github user gatorsmile commented on a diff in the pull request: https://github.com/apache/spark/pull/16762#discussion_r99893570 --- Diff: sql/core/src/main/scala/org/apache/spark/sql/execution/joins/BroadcastNestedLoopJoinExec.scala --- @@ -339,6 +340,33 @@ case class BroadcastNestedLoopJoinExec( ) } + protected override def doPrepare(): Unit = { + if (!sqlContext.conf.crossJoinEnabled) { + joinType match { + case Cross => // Do nothing + case Inner => + if (condition.isEmpty) { + throw new AnalysisException( + s"""Detected cartesian product for INNER join between logical plans + |${left.treeString(false).trim} + |and + |${right.treeString(false).trim} + |Join condition is missing or trivial. + |Use the CROSS JOIN syntax to allow cartesian products between these relations. + """.stripMargin) + } + case _ if !withinBroadcastThreshold || condition.isEmpty => + throw new AnalysisException( + s"""Both sides of this join are outside the broadcasting threshold and + |computing it could be prohibitively expensive. To explicitly enable it, + |Please set ${SQLConf.CROSS_JOINS_ENABLED.key} = true. --- End diff -- : ) This is also my question.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org