MaxGekk opened a new pull request #30551:
URL: https://github.com/apache/spark/pull/30551


   ### What changes were proposed in this pull request?
   Perform partition spec normalization in `ShowTablesCommand` according to the 
table schema before getting partitions from the catalog. The normalization via 
`PartitioningUtils.normalizePartitionSpec()` adjusts the column names in 
partition specification, w.r.t. the real partition column names and case 
sensitivity.
   
   ### Why are the changes needed?
   Even when `spark.sql.caseSensitive` is `false` which is the default value, 
v1 `SHOW TABLE EXTENDED` is case sensitive:
   ```sql
   spark-sql> CREATE TABLE tbl1 (price int, qty int, year int, month int)
            > USING parquet
            > partitioned by (year, month);
   spark-sql> INSERT INTO tbl1 PARTITION(year = 2015, month = 1) SELECT 1, 1;
   spark-sql> SHOW TABLE EXTENDED LIKE 'tbl1' PARTITION(YEAR = 2015, Month = 1);
   Error in query: Partition spec is invalid. The spec (YEAR, Month) must match 
the partition spec (year, month) defined in table '`default`.`tbl1`';
   ```
   
   ### Does this PR introduce _any_ user-facing change?
   Yes. After the changes, the `SHOW TABLE EXTENDED` command respects the SQL 
config. And for example above, it returns correct result:
   ```sql
   spark-sql> SHOW TABLE EXTENDED LIKE 'tbl1' PARTITION(YEAR = 2015, Month = 1);
   default      tbl1    false   Partition Values: [year=2015, month=1]
   Location: file:/Users/maximgekk/spark-warehouse/tbl1/year=2015/month=1
   Serde Library: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
   InputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
   OutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
   Storage Properties: [serialization.format=1, 
path=file:/Users/maximgekk/spark-warehouse/tbl1]
   Partition Parameters: {transient_lastDdlTime=1606595118, totalSize=623, 
numFiles=1}
   Created Time: Sat Nov 28 23:25:18 MSK 2020
   Last Access: UNKNOWN
   Partition Statistics: 623 bytes
   ```
   
   ### How was this patch tested?
   By running the modified test suite via:
   ```
   $ build/sbt -Phive-2.3 -Phive-thriftserver "test:testOnly *DDLSuite"
   ```
   
   Authored-by: Max Gekk <[email protected]>
   Signed-off-by: Dongjoon Hyun <[email protected]>
   (cherry picked from commit 0054fc937f804660c6501d9d3f6319f3047a68f8)
   Signed-off-by: Max Gekk <[email protected]>


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



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

Reply via email to