Github user OopsOutOfMemory commented on a diff in the pull request:

    https://github.com/apache/spark/pull/4060#discussion_r24102921
  
    --- Diff: sql/core/src/main/scala/org/apache/spark/sql/sources/ddl.scala ---
    @@ -231,6 +241,32 @@ private [sql] case class CreateTempTableUsing(
       }
     }
     
    +private[sql] case class DropTable(
    +    tableName: String,
    +    isExists: Boolean,
    +    temporary: Boolean) extends Command
    --- End diff --
    
    yeah, I use a single logical operator here.
    If handle the type of the table and then delegate.
    Is that ok to do like below? we need catch exceptions in strategy.  If not 
found I will construct a new MetaStoreRelation for placeholder, it would be 
nice if you can give me some advice : )
    ```scala
    try {
              val resolvedTable = 
context.executePlan(UnresolvedRelation(drop.tableIdent)).analyzed
              resolvedTable match {
                case t: MetastoreRelation =>
                  ExecutedCommand(DropHiveTable(t, drop.isExists, 
drop.temporary)) :: Nil
              }
            }
            catch {
              case e: InvalidTableException if drop.isExists =>
                ExecutedCommand(DropHiveTable(MetastoreRelation("","",None, ), 
drop.isExists, drop.temporary)) :: Nil
            }
         ...
    ```



---
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 [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to