diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala index 00bdf108a8398..64b8d45ebbf42 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala @@ -121,7 +121,7 @@ case class CreateTableAsSelect[T]( allowExisting: Boolean, desc: Option[T] = None) extends UnaryNode { override def output = Seq.empty[Attribute] - override lazy val resolved = (databaseName != None && childrenResolved) + override lazy val resolved = databaseName != None && childrenResolved } case class WriteToFile( diff --git a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala index d2fae0f15349a..d8b10b78c6c59 100644 --- a/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala +++ b/sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveMetastoreCatalog.scala @@ -260,8 +260,9 @@ private[hive] class HiveMetastoreCatalog(hive: HiveContext) extends Catalog with def apply(plan: LogicalPlan): LogicalPlan = plan transform { // Wait until children are resolved. case p: LogicalPlan if !p.childrenResolved => p - case p: LogicalPlan if p.resolved => p + // TODO extra is in type of ASTNode which means the logical plan is not resolved + // Need to think about how to implement the CreateTableAsSelect.resolved case CreateTableAsSelect(db, tableName, child, allowExisting, Some(extra: ASTNode)) => val (dbName, tblName) = processDatabaseAndTableName(db, tableName) val databaseName = dbName.getOrElse(hive.sessionState.getCurrentDatabase) @@ -287,7 +288,9 @@ private[hive] class HiveMetastoreCatalog(hive: HiveContext) extends Catalog with CreateTableAsSelect(Some(databaseName), tblName, child, allowExisting, desc) - case CreateTableAsSelect(db, tableName, child, allowExisting, None) => + case p: LogicalPlan if p.resolved => p + + case p @ CreateTableAsSelect(db, tableName, child, allowExisting, None) => val (dbName, tblName) = processDatabaseAndTableName(db, tableName) val databaseName = dbName.getOrElse(hive.sessionState.getCurrentDatabase) CreateTableAsSelect(Some(databaseName), tblName, child, allowExisting, None)