You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@spark.apache.org by yhuai <gi...@git.apache.org> on 2014/06/18 21:15:30 UTC

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

GitHub user yhuai opened a pull request:

    https://github.com/apache/spark/pull/1118

    [SPARK-2177][SQL] describe table result contains only one column

    ```
    scala> hql("describe src").collect().foreach(println)
    
    [key                 	string              	None                ]
    [value               	string              	None                ]
    ```
    
    The result should contain 3 columns instead of one. This screws up JDBC or even the downstream consumer of the Scala/Java/Python APIs.
    
    I am providing a workaround. We need a better way to handle the result of a native command in future.
    
    Also, if we upgrade Hive to 0.13, we need to check the results of context.sessionState.isHiveServerQuery() to determine how to split the result. This method is introduced by https://issues.apache.org/jira/browse/HIVE-4545. We may want to set Hive to use JsonMetaDataFormatter for the output of a DDL statement (`set hive.ddl.output.format=json`).

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/yhuai/spark SPARK-2177

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/spark/pull/1118.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1118
    
----
commit bb8bbef0dad2f79b57db1a9c810dbc918e01763c
Author: Yin Huai <hu...@cse.ohio-state.edu>
Date:   2014-06-18T19:09:43Z

    Split every string in the result of a describe command.

commit 725e88c1c7de5fb0b73ca4567686caa365f18de7
Author: Yin Huai <hu...@cse.ohio-state.edu>
Date:   2014-06-18T19:10:13Z

    Merge remote-tracking branch 'upstream/master' into SPARK-2177

----


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46533262
  
    Merged build finished. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46487871
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13936033
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/hiveOperators.scala ---
    @@ -445,7 +445,19 @@ case class NativeCommand(
         if (sideEffectResult.size == 0) {
           context.emptyResult
         } else {
    -      val rows = sideEffectResult.map(r => new GenericRow(Array[Any](r)))
    +      // TODO: Need a better way to handle the result of a native command.
    +      // We may want to consider to use JsonMetaDataFormatter in Hive.
    +      val isDescribe = sql.trim.startsWith("describe")
    +      val rows = if (isDescribe) {
    +        // TODO: If we upgrade Hive to 0.13, we need to check the results of
    +        // context.sessionState.isHiveServerQuery() to determine how to split the result.
    +        // This method is introduced by https://issues.apache.org/jira/browse/HIVE-4545.
    +        // Right now, we split every string by any number of consecutive spaces.
    +        sideEffectResult.map(
    +          r => r.split("\\s+")).map(r => new GenericRow(r.asInstanceOf[Array[Any]]))
    --- End diff --
    
    actually for describe can we only split up to 3 columns?
    ```scala
    scala> "a b c d e".split("\\s+", 3)
    res2: Array[String] = Array(a, b, c d e)
    ```


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954580
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveStrategies.scala ---
    @@ -17,7 +17,7 @@
     
     package org.apache.spark.sql.hive
     
    -import org.apache.spark.sql.SQLContext
    +import org.apache.spark.sql.{SQLContext}
    --- End diff --
    
    no need to change this 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46638157
  
    All automated tests passed.
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15932/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46638154
  
    Merged build finished. All automated tests passed.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954626
  
    --- Diff: sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveQuerySuite.scala ---
    @@ -257,6 +250,88 @@ class HiveQuerySuite extends HiveComparisonTest {
         assert(Try(q0.count()).isSuccess)
       }
     
    +  test("Describe commands") {
    --- End diff --
    
    to be consistent either lowercase D, or uppercase the whole DESCRIBE


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526493
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526256
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46634524
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46629779
  
    All automated tests passed.
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15929/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954716
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala ---
    @@ -362,13 +367,19 @@ private[hive] object HiveQl {
         }
       }
     
    +  protected def extractDbNameTableName(tableNameParts: Node): (Option[String], String) = {
    +    val (db, tableName) =
    +      tableNameParts.getChildren.map{ case Token(part, Nil) => cleanIdentifier(part)} match {
    --- End diff --
    
    space after map, and before the closing }


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r14002250
  
    --- Diff: sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveComparisonTest.scala ---
    @@ -144,6 +144,10 @@ abstract class HiveComparisonTest
           case _: SetCommand => Seq("0")
           case _: LogicalNativeCommand => answer.filterNot(nonDeterministicLine).filterNot(_ == "")
           case _: ExplainCommand => answer
    +      case _: DescribeCommand =>
    --- End diff --
    
    add some inline comment explaining what you are filtering


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by yhuai <gi...@git.apache.org>.
Github user yhuai commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46634501
  
    For this PRD, if user want to describe a column, `DESCRIBE tableName columnName` should be used (right now, the command to describe a column is treated as a hive native command) because if this user uses `DESCRIBE tableName.columnName`, `tableName` will be treated as the db name and `columnName` will be treated as the table name. Need a follow-up jira to address this issue.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46619093
  
    
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15923/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526720
  
    Merged build finished. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46609788
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954667
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/hiveOperators.scala ---
    @@ -19,8 +19,10 @@ package org.apache.spark.sql.hive.execution
     
     import org.apache.hadoop.hive.common.`type`.{HiveDecimal, HiveVarchar}
     import org.apache.hadoop.hive.conf.HiveConf
    +import org.apache.hadoop.hive.metastore.api.FieldSchema
    --- End diff --
    
    api should go after MetaStoreUtils since api is  a package


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526501
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526259
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526559
  
    
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15898/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954670
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/hiveOperators.scala ---
    @@ -19,8 +19,10 @@ package org.apache.spark.sql.hive.execution
     
     import org.apache.hadoop.hive.common.`type`.{HiveDecimal, HiveVarchar}
     import org.apache.hadoop.hive.conf.HiveConf
    +import org.apache.hadoop.hive.metastore.api.FieldSchema
     import org.apache.hadoop.hive.metastore.MetaStoreUtils
     import org.apache.hadoop.hive.ql.Context
    +import org.apache.hadoop.hive.ql.metadata.formatting.MetaDataFormatUtils
    --- End diff --
    
    this one also should go after the next line


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46649113
  
    Ok I'm merging this in master & branch-1.0. Thanks!


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/spark/pull/1118


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46496227
  
    
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15881/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by liancheng <gi...@git.apache.org>.
Github user liancheng commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13950516
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/hiveOperators.scala ---
    @@ -445,7 +445,19 @@ case class NativeCommand(
         if (sideEffectResult.size == 0) {
           context.emptyResult
         } else {
    -      val rows = sideEffectResult.map(r => new GenericRow(Array[Any](r)))
    +      // TODO: Need a better way to handle the result of a native command.
    +      // We may want to consider to use JsonMetaDataFormatter in Hive.
    --- End diff --
    
    Ah, my bad, when saying "just refer to `NativeCommand`", I actually meant to add a `DescribeCommand` following `NativeCommand` in `hiveOperations.scala`.
    
    Actually, as briefly mentioned at the end of section [PR Overview](https://github.com/apache/spark/pull/1071#issue-35616519) of PR #1071 description, we should specialize all native commands in the same way, and use `NativeCommand` as a default handler for those commands that haven't been specialized yet.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46624057
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526557
  
    Merged build finished. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46528512
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46487847
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46533263
  
    
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15903/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46534190
  
    hmmm a lot of tests are failing because the output doesn't match exactly Hive's ...


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by concretevitamin <gi...@git.apache.org>.
Github user concretevitamin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13937717
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/hiveOperators.scala ---
    @@ -445,7 +445,19 @@ case class NativeCommand(
         if (sideEffectResult.size == 0) {
           context.emptyResult
         } else {
    -      val rows = sideEffectResult.map(r => new GenericRow(Array[Any](r)))
    +      // TODO: Need a better way to handle the result of a native command.
    +      // We may want to consider to use JsonMetaDataFormatter in Hive.
    --- End diff --
    
    Instead of introducing a special case here, can we put this piece of logic in a separate `DescribeCommand`? A while ago the introduction of `SetCommand` / `ExplainCommand` / `CacheCommand` serve partly to reduce special-casing in random places -- pinging @liancheng on this too.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46610865
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954631
  
    --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/commands.scala ---
    @@ -60,3 +60,16 @@ case class ExplainCommand(plan: LogicalPlan) extends Command {
      * Returned for the "CACHE TABLE tableName" and "UNCACHE TABLE tableName" command.
      */
     case class CacheCommand(tableName: String, doCache: Boolean) extends Command
    +
    +/**
    + * Returned for the "Describe tableName" command.
    --- End diff --
    
    to be consistent either lowercase D, or uppercase the whole DESCRIBE


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954638
  
    --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/commands.scala ---
    @@ -60,3 +60,16 @@ case class ExplainCommand(plan: LogicalPlan) extends Command {
      * Returned for the "CACHE TABLE tableName" and "UNCACHE TABLE tableName" command.
      */
     case class CacheCommand(tableName: String, doCache: Boolean) extends Command
    +
    +/**
    + * Returned for the "Describe tableName" command.
    + */
    +case class DescribeCommand(
    --- End diff --
    
    would be great to explain isFormatted / isExtended in @param.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954704
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala ---
    @@ -362,13 +367,19 @@ private[hive] object HiveQl {
         }
       }
     
    +  protected def extractDbNameTableName(tableNameParts: Node): (Option[String], String) = {
    +    val (db, tableName) =
    +      tableNameParts.getChildren.map{ case Token(part, Nil) => cleanIdentifier(part)} match {
    +        case Seq(tableOnly) => (None, tableOnly)
    +        case Seq(databaseName, table) => (Some(databaseName), table)
    +      }
    +
    +    (db, tableName)
    +  }
    +
       protected def nodeToPlan(node: Node): LogicalPlan = node match {
         // Just fake explain for any of the native commands.
    -    case Token("TOK_EXPLAIN", explainArgs) if nativeCommands contains explainArgs.head.getText =>
    -      ExplainCommand(NoRelation)
    -    // Create tables aren't native commands due to CTAS queries, but we still don't need to
    -    // explain them.
    -    case Token("TOK_EXPLAIN", explainArgs) if explainArgs.head.getText == "TOK_CREATETABLE" =>
    +    case Token("TOK_EXPLAIN", explainArgs) if noExplainCommands contains explainArgs.head.getText =>
    --- End diff --
    
    avoid infix contains here, i.e. 
    ```scala
    noExplainCommands.contains(explainArgs.head.getText)
    ```


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46481094
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46526721
  
    
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15897/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46528520
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r14001780
  
    --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/commands.scala ---
    @@ -60,3 +60,23 @@ case class ExplainCommand(plan: LogicalPlan) extends Command {
      * Returned for the "CACHE TABLE tableName" and "UNCACHE TABLE tableName" command.
      */
     case class CacheCommand(tableName: String, doCache: Boolean) extends Command
    +
    +/**
    --- End diff --
    
    remove this block


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46490255
  
    Merged build finished. All automated tests passed.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46609941
  
    Merged build finished. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46496225
  
    Merged build finished. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46490257
  
    All automated tests passed.
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15879/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46610851
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46609766
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46481112
  
    Merged build started. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46634519
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954724
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala ---
    @@ -120,6 +119,12 @@ private[hive] object HiveQl {
         "TOK_SWITCHDATABASE"
       )
     
    +  // Commands that we do not need to explain.
    +  protected val noExplainCommands = Seq(
    +    "TOK_CREATETABLE",
    --- End diff --
    
    does ctas fall in here?


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by yhuai <gi...@git.apache.org>.
Github user yhuai commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13955335
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala ---
    @@ -120,6 +119,12 @@ private[hive] object HiveQl {
         "TOK_SWITCHDATABASE"
       )
     
    +  // Commands that we do not need to explain.
    +  protected val noExplainCommands = Seq(
    +    "TOK_CREATETABLE",
    --- End diff --
    
    noExplainCommands is for those commands which we do not need to explain. For example, we will basically do nothing for "EXPLAIN CTAS". A regular CTAS query will not fall in here.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46609944
  
    
    Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/15921/


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13954661
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveStrategies.scala ---
    @@ -81,6 +81,20 @@ private[hive] trait HiveStrategies {
         def apply(plan: LogicalPlan): Seq[SparkPlan] = plan match {
           case logical.NativeCommand(sql) =>
             NativeCommand(sql, plan.output)(context) :: Nil
    +      case describe: logical.DescribeCommand => {
    +        val resolvedTable = context.executePlan(describe.table).analyzed
    +        resolvedTable match {
    +          case t: MetastoreRelation =>
    +            Seq(DescribeHiveTableCommand(
    +              t, describe.output, describe.isFormatted, describe.isExtended)(context))
    +          case o: LogicalPlan =>
    +            if (describe.isFormatted)
    --- End diff --
    
    Maybe for non metastore tables, we can just added some formatted/extended information saying they are registered as temporary tables? Then we can get rid of the extra lines here ...


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by yhuai <gi...@git.apache.org>.
Github user yhuai commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13938252
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/hiveOperators.scala ---
    @@ -445,7 +445,19 @@ case class NativeCommand(
         if (sideEffectResult.size == 0) {
           context.emptyResult
         } else {
    -      val rows = sideEffectResult.map(r => new GenericRow(Array[Any](r)))
    +      // TODO: Need a better way to handle the result of a native command.
    +      // We may want to consider to use JsonMetaDataFormatter in Hive.
    --- End diff --
    
    Yeah, it sounds good.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46619092
  
    Merged build finished. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46629778
  
    Merged build finished. All automated tests passed.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by rxin <gi...@git.apache.org>.
Github user rxin commented on a diff in the pull request:

    https://github.com/apache/spark/pull/1118#discussion_r13937999
  
    --- Diff: sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/hiveOperators.scala ---
    @@ -445,7 +445,19 @@ case class NativeCommand(
         if (sideEffectResult.size == 0) {
           context.emptyResult
         } else {
    -      val rows = sideEffectResult.map(r => new GenericRow(Array[Any](r)))
    +      // TODO: Need a better way to handle the result of a native command.
    +      // We may want to consider to use JsonMetaDataFormatter in Hive.
    --- End diff --
    
    That sounds good. Let's merge this first and submit another PR for that. (Reason is this should make it into 1.0.1)


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] spark pull request: [SPARK-2177][SQL] describe table result contai...

Posted by AmplabJenkins <gi...@git.apache.org>.
Github user AmplabJenkins commented on the pull request:

    https://github.com/apache/spark/pull/1118#issuecomment-46624048
  
     Merged build triggered. 


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---