diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala index 286794c0eeaf..02031e758d83 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckAnalysis.scala @@ -433,6 +433,9 @@ trait CheckAnalysis extends PredicateHelper { throw new IllegalStateException( "Internal error: logical hint operator should have been removed during analysis") + case InsertIntoTable(u: UnresolvedRelation, _, _, _, _) => + failAnalysis(s"Table not found: ${u.multipartIdentifier.quoted}") + case f @ Filter(condition, _) if PlanHelper.specialExpressionsInUnsupportedOperator(f).nonEmpty => val invalidExprSqls = PlanHelper.specialExpressionsInUnsupportedOperator(f).map(_.sql) diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala index 34ea6d5404ae..74445a111e4d 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisSuite.scala @@ -645,4 +645,9 @@ class AnalysisSuite extends AnalysisTest with Matchers { Seq("Number of column aliases does not match number of columns. Number of column aliases: " + "2; number of columns: 1.")) } + + test("SPARK-28251: Insert into non-existing table error message is user friendly") { + assertAnalysisError(parsePlan("INSERT INTO test VALUES (1)"), + Seq("Table not found: test")) + } }