### Eclipse Workspace Patch 1.0 #P open src hive code Index: ql/src/test/results/clientpositive/ppr_pushdown.q.out =================================================================== --- ql/src/test/results/clientpositive/ppr_pushdown.q.out (revision 1202581) +++ ql/src/test/results/clientpositive/ppr_pushdown.q.out (working copy) @@ -162,11 +162,11 @@ PREHOOK: query: select * from ppr_test where ds = '1234' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=1234 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-53_994_7562932232779987377/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-39_628_4360923305226203150/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '1234' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=1234 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-53_994_7562932232779987377/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-39_628_4360923305226203150/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -175,16 +175,16 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +1234 1234 abcd 1234 -1234 1234 PREHOOK: query: select * from ppr_test where ds = '1224' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=1224 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-54_581_2505144516732828104/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-40_742_8669092182800497506/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '1224' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=1224 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-54_581_2505144516732828104/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-40_742_8669092182800497506/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -193,16 +193,16 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +1224 1224 abcd 1224 -1224 1224 PREHOOK: query: select * from ppr_test where ds = '1214' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=1214 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-54_853_7951716559154890872/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-41_624_1934845005134961790/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '1214' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=1214 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-54_853_7951716559154890872/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-41_624_1934845005134961790/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -211,16 +211,16 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +1214 1214 abcd 1214 -1214 1214 PREHOOK: query: select * from ppr_test where ds = '12.4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12.4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_133_1358900232060245493/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-42_540_800866613747938557/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12.4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12.4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_133_1358900232060245493/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-42_540_800866613747938557/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -229,16 +229,16 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +12.4 12.4 abcd 12.4 -12.4 12.4 PREHOOK: query: select * from ppr_test where ds = '12+4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12+4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_396_1886989364983202450/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-43_834_7096199056154205192/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12+4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12+4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_396_1886989364983202450/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-43_834_7096199056154205192/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -247,16 +247,16 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +12+4 12+4 abcd 12+4 -12+4 12+4 PREHOOK: query: select * from ppr_test where ds = '12:4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12%3A4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_675_1879183848037008858/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-45_159_9168799687101800669/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12:4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12%3A4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_675_1879183848037008858/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-45_159_9168799687101800669/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -265,16 +265,16 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +12:4 12:4 abcd 12:4 -12:4 12:4 PREHOOK: query: select * from ppr_test where ds = '12%4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12%254 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_947_7257143082337477962/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-46_120_7696553318371014928/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12%4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12%254 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-55_947_7257143082337477962/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-46_120_7696553318371014928/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -283,16 +283,16 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +12%4 12%4 abcd 12%4 -12%4 12%4 PREHOOK: query: select * from ppr_test where ds = '12*4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12%2A4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-56_206_658052552869274889/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-47_153_1417210258934756084/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12*4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12%2A4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-56_206_658052552869274889/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-47_153_1417210258934756084/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -301,14 +301,14 @@ POSTHOOK: Lineage: ppr_test PARTITION(ds=1224).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=1234).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12:4).key EXPRESSION [] +12*4 12*4 abcd 12*4 -12*4 12*4 PREHOOK: query: select * from ppr_test where ds = '12.*4' PREHOOK: type: QUERY -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-56_473_2360145199088935052/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-48_087_6826625556028120424/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12.*4' POSTHOOK: type: QUERY -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-56_473_2360145199088935052/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-48_087_6826625556028120424/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -320,11 +320,11 @@ PREHOOK: query: select * from ppr_test where ds = '1234' and key = '1234' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=1234 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-56_533_2669295483949497025/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-48_221_2289009719595677682/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '1234' and key = '1234' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=1234 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-56_533_2669295483949497025/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-48_221_2289009719595677682/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -337,11 +337,11 @@ PREHOOK: query: select * from ppr_test where ds = '1224' and key = '1224' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=1224 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-59_506_7569310480938065041/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-52_556_4417745927634365762/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '1224' and key = '1224' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=1224 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-42-59_506_7569310480938065041/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-52_556_4417745927634365762/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -354,11 +354,11 @@ PREHOOK: query: select * from ppr_test where ds = '1214' and key = '1214' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=1214 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-02_471_7943670690328696677/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-59_249_3712886603436365397/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '1214' and key = '1214' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=1214 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-02_471_7943670690328696677/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-20-59_249_3712886603436365397/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -371,11 +371,11 @@ PREHOOK: query: select * from ppr_test where ds = '12.4' and key = '12.4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12.4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-05_426_6599608597912720244/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-06_305_2084362718581541780/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12.4' and key = '12.4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12.4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-05_426_6599608597912720244/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-06_305_2084362718581541780/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -388,11 +388,11 @@ PREHOOK: query: select * from ppr_test where ds = '12+4' and key = '12+4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12+4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-08_327_2168484222242026552/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-10_329_6820779096002186400/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12+4' and key = '12+4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12+4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-08_327_2168484222242026552/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-10_329_6820779096002186400/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -405,11 +405,11 @@ PREHOOK: query: select * from ppr_test where ds = '12:4' and key = '12:4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12%3A4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-11_361_8648952567109428131/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-14_505_5946304396079837881/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12:4' and key = '12:4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12%3A4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-11_361_8648952567109428131/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-14_505_5946304396079837881/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -422,11 +422,11 @@ PREHOOK: query: select * from ppr_test where ds = '12%4' and key = '12%4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12%254 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-14_254_1733336023126589571/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-18_665_3506706121023437015/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12%4' and key = '12%4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12%254 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-14_254_1733336023126589571/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-18_665_3506706121023437015/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] @@ -439,11 +439,11 @@ PREHOOK: query: select * from ppr_test where ds = '12*4' and key = '12*4' PREHOOK: type: QUERY PREHOOK: Input: default@ppr_test@ds=12%2A4 -PREHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-17_286_8476862252367771252/-mr-10000 +PREHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-23_109_2454324736922432978/-mr-10000 POSTHOOK: query: select * from ppr_test where ds = '12*4' and key = '12*4' POSTHOOK: type: QUERY POSTHOOK: Input: default@ppr_test@ds=12%2A4 -POSTHOOK: Output: file:/tmp/nzhang/hive_2011-03-15_17-43-17_286_8476862252367771252/-mr-10000 +POSTHOOK: Output: file:/tmp/root/hive_2011-11-18_04-21-23_109_2454324736922432978/-mr-10000 POSTHOOK: Lineage: ppr_test PARTITION(ds=12%4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12*4).key EXPRESSION [] POSTHOOK: Lineage: ppr_test PARTITION(ds=12+4).key EXPRESSION [] Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 1202581) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -2503,8 +2503,11 @@ * @throws HiveException * Throws this exception if an unexpected error occurs. */ + + private int describeTable(Hive db, DescTableDesc descTbl) throws HiveException { String colPath = descTbl.getTableName(); + long lastAccessTime = 0; String tableName = colPath.substring(0, colPath.indexOf('.') == -1 ? colPath.length() : colPath.indexOf('.')); @@ -2546,7 +2549,21 @@ } finally { IOUtils.closeStream((FSDataOutputStream) outStream); } - + Path tablLoc = tbl.getPath(); + List locations = new ArrayList(); + if (tbl.isPartitioned()) { + if (part == null) { + for (Partition curPart : db.getPartitions(tbl)) { + if (null != curPart.getTPartition().getSd()) + locations.add(new Path(curPart.getTPartition().getSd().getLocation())); + } + } else { + locations.add(new Path(part.getTPartition().getSd().getLocation())); + } + } else { + if (null != tablLoc) + locations.add(tablLoc); + } try { LOG.info("DDLTask: got data for " + tbl.getTableName()); @@ -2592,7 +2609,15 @@ // show partition information outStream.writeBytes("Detailed Partition Information"); outStream.write(separator); - outStream.writeBytes(part.getTPartition().toString()); + if (!tbl.isView()) { + lastAccessTime = getAccessTime(tablLoc, locations); + } + outStream.writeBytes("tableName:" + part.getTPartition().getTableName()); + outStream.writeBytes(" dbName:" + part.getTPartition().getDbName()); + outStream.writeBytes(" createTime:" + part.getTPartition().getCreateTime()); + outStream.writeBytes(" lastAccessTime:" + lastAccessTime); + outStream.writeBytes(" sd:" + part.getTPartition().getSd()); + outStream.writeBytes(", parameters:" + part.getTPartition().getParameters()); outStream.write(separator); // comment column is empty outStream.write(terminator); @@ -2600,7 +2625,22 @@ // show table information outStream.writeBytes("Detailed Table Information"); outStream.write(separator); - outStream.writeBytes(tbl.getTTable().toString()); + if (!tbl.isView()) { + lastAccessTime = getAccessTime(tablLoc, locations); + } + outStream.writeBytes("Table(tableName:" + tbl.getTTable().getTableName()); + outStream.writeBytes(" dbName:" + tbl.getTTable().getDbName()); + outStream.writeBytes(" owner:" + tbl.getTTable().getOwner()); + outStream.writeBytes(" createTime:" + tbl.getTTable().getCreateTime()); + outStream.writeBytes(" lastAccessTime:" + lastAccessTime); + outStream.writeBytes(" retention:" + tbl.getTTable().getRetention()); + outStream.writeBytes(" sd:" + tbl.getTTable().getSd()); + outStream.writeBytes(", partitionKeys:" + tbl.getTTable().getPartitionKeys()); + outStream.writeBytes(", parameters:" + tbl.getTTable().getParameters()); + outStream.writeBytes(", viewOriginalText:" + tbl.getViewOriginalText()); + outStream.writeBytes(", viewExpandedText:" + tbl.getViewExpandedText()); + outStream.writeBytes(", tableType:" + tbl.getTableType() + ")"); + outStream.write(separator); outStream.write(terminator); } @@ -2625,6 +2665,36 @@ return 0; } + + private long getAccessTime(Path tablLoc, List locations) throws IOException { + long lastAccessTime = 0; + FileSystem dfs = tablLoc.getFileSystem(conf); + for (Path loc : locations) { + try { + FileStatus status = dfs.getFileStatus(tablLoc); + FileStatus[] files = dfs.listStatus(loc); + long accessTime = ShimLoader.getHadoopShims().getAccessTime(status); + // no matter loc is the table location or part location, it must be a + // directory. + if (status.isDir()) { + if (accessTime > lastAccessTime) { + lastAccessTime = accessTime; + } + for (FileStatus currentStatus : files) { + if (!currentStatus.isDir()) { + accessTime = ShimLoader.getHadoopShims().getAccessTime(currentStatus); + if (accessTime > lastAccessTime) { + lastAccessTime = accessTime; + } + } + } + } + } catch (IOException e) { + LOG.info("IOException while fetching the lastAccessTime for the path : " + loc); + } + } + return lastAccessTime; + } public static void writeGrantInfo(DataOutput outStream, PrincipalType principalType, String principalName, String dbName,