diff --git ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java index 24137e2..083babd 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java @@ -69,6 +69,7 @@ public boolean accept(Path path) { } }; public static final String BUCKET_DIGITS = "%05d"; + public static final String LEGACY_FILE_BUCKET_DIGITS = "%06d"; public static final String DELTA_DIGITS = "%07d"; /** * 10K statements per tx. Probably overkill ... since that many delta files @@ -80,7 +81,7 @@ public boolean accept(Path path) { */ public static final int MAX_STATEMENTS_PER_TXN = 10000; public static final Pattern BUCKET_DIGIT_PATTERN = Pattern.compile("[0-9]{5}$"); - public static final Pattern LEGACY_BUCKET_DIGIT_PATTERN = Pattern.compile("^[0-9]{5}"); + public static final Pattern LEGACY_BUCKET_DIGIT_PATTERN = Pattern.compile("^[0-9]{6}"); public static final PathFilter originalBucketFilter = new PathFilter() { @Override public boolean accept(Path path) { @@ -145,7 +146,7 @@ public static Path createFilename(Path directory, AcidOutputFormat.Options options) { String subdir; if (options.getOldStyle()) { - return new Path(directory, String.format(BUCKET_DIGITS, + return new Path(directory, String.format(LEGACY_FILE_BUCKET_DIGITS, options.getBucket()) + "_0"); } else if (options.isWritingBase()) { subdir = BASE_PREFIX + String.format(DELTA_DIGITS, diff --git ql/src/test/org/apache/hadoop/hive/ql/io/TestAcidUtils.java ql/src/test/org/apache/hadoop/hive/ql/io/TestAcidUtils.java index b6ba862..06d2cad 100644 --- ql/src/test/org/apache/hadoop/hive/ql/io/TestAcidUtils.java +++ ql/src/test/org/apache/hadoop/hive/ql/io/TestAcidUtils.java @@ -43,10 +43,10 @@ public void testCreateFilename() throws Exception { Configuration conf = new Configuration(); AcidOutputFormat.Options options = new AcidOutputFormat.Options(conf) .setOldStyle(true).bucket(1); - assertEquals("/tmp/00001_0", + assertEquals("/tmp/000001_0", AcidUtils.createFilename(p, options).toString()); options.bucket(123); - assertEquals("/tmp/00123_0", + assertEquals("/tmp/000123_0", AcidUtils.createFilename(p, options).toString()); options.bucket(23) .minimumTransactionId(100) diff --git ql/src/test/org/apache/hadoop/hive/ql/txn/compactor/CompactorTest.java ql/src/test/org/apache/hadoop/hive/ql/txn/compactor/CompactorTest.java index 2ba0b29..a929c95 100644 --- ql/src/test/org/apache/hadoop/hive/ql/txn/compactor/CompactorTest.java +++ ql/src/test/org/apache/hadoop/hive/ql/txn/compactor/CompactorTest.java @@ -293,7 +293,7 @@ private void addFile(Table t, Partition p, long minTxn, long maxTxn, if (bucket == 0 && !allBucketsPresent) continue; // skip one Path partFile = null; if (type == FileType.LEGACY) { - partFile = new Path(location, String.format(AcidUtils.BUCKET_DIGITS, bucket) + "_0"); + partFile = new Path(location, String.format(AcidUtils.LEGACY_FILE_BUCKET_DIGITS, bucket) + "_0"); } else { Path dir = new Path(location, filename); fs.mkdirs(dir); @@ -337,7 +337,7 @@ private void addFile(Table t, Partition p, long minTxn, long maxTxn, FileSystem fs = p.getFileSystem(conf); if (fs.exists(p)) filesToRead.add(p); } else { - filesToRead.add(new Path(baseDirectory, "00000_0")); + filesToRead.add(new Path(baseDirectory, "000000_0")); } }