diff --git a/src/main/java/io/trino/tpch/Customer.java b/src/main/java/io/trino/tpch/Customer.java index 289ffd2..2b81bd4 100644 --- a/src/main/java/io/trino/tpch/Customer.java +++ b/src/main/java/io/trino/tpch/Customer.java @@ -14,7 +14,7 @@ package io.trino.tpch; import static io.trino.tpch.GenerateUtils.formatMoney; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class Customer @@ -97,15 +97,6 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, - "%d|%s|%s|%d|%s|%s|%s|%s|", - customerKey, - name, - address, - nationKey, - phone, - formatMoney(accountBalance), - marketSegment, - comment); + return buildLine(customerKey, name, address, nationKey, phone, formatMoney(accountBalance), marketSegment, comment); } } diff --git a/src/main/java/io/trino/tpch/LineItem.java b/src/main/java/io/trino/tpch/LineItem.java index 5956283..213a14d 100644 --- a/src/main/java/io/trino/tpch/LineItem.java +++ b/src/main/java/io/trino/tpch/LineItem.java @@ -15,7 +15,7 @@ import static io.trino.tpch.GenerateUtils.formatDate; import static io.trino.tpch.GenerateUtils.formatMoney; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class LineItem @@ -180,8 +180,7 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, - "%d|%d|%d|%d|%d|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|", + return buildLine( orderKey, partKey, supplierKey, diff --git a/src/main/java/io/trino/tpch/Nation.java b/src/main/java/io/trino/tpch/Nation.java index d384a2c..e7f6ee1 100644 --- a/src/main/java/io/trino/tpch/Nation.java +++ b/src/main/java/io/trino/tpch/Nation.java @@ -13,7 +13,7 @@ */ package io.trino.tpch; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class Nation @@ -63,6 +63,6 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, "%d|%s|%d|%s|", nationKey, name, regionKey, comment); + return buildLine(nationKey, name, regionKey, comment); } } diff --git a/src/main/java/io/trino/tpch/Order.java b/src/main/java/io/trino/tpch/Order.java index 2a40b86..08b0fe0 100644 --- a/src/main/java/io/trino/tpch/Order.java +++ b/src/main/java/io/trino/tpch/Order.java @@ -15,7 +15,7 @@ import static io.trino.tpch.GenerateUtils.formatDate; import static io.trino.tpch.GenerateUtils.formatMoney; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class Order @@ -114,8 +114,7 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, - "%d|%d|%s|%s|%s|%s|%s|%d|%s|", + return buildLine( orderKey, customerKey, orderStatus, diff --git a/src/main/java/io/trino/tpch/OrderGenerator.java b/src/main/java/io/trino/tpch/OrderGenerator.java index 18e6bfa..7742eff 100644 --- a/src/main/java/io/trino/tpch/OrderGenerator.java +++ b/src/main/java/io/trino/tpch/OrderGenerator.java @@ -18,6 +18,7 @@ import java.util.Iterator; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.padStart; import static io.trino.tpch.GenerateUtils.MIN_GENERATE_DATE; import static io.trino.tpch.GenerateUtils.TOTAL_DATE_RANGE; import static io.trino.tpch.GenerateUtils.calculateRowCount; @@ -30,7 +31,6 @@ import static io.trino.tpch.LineItemGenerator.createShipDateRandom; import static io.trino.tpch.LineItemGenerator.createTaxRandom; import static io.trino.tpch.PartGenerator.calculatePartPrice; -import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; public class OrderGenerator @@ -226,7 +226,7 @@ else if (shippedCount > 0) { totalPrice, toEpochDate(orderDate), orderPriorityRandom.nextValue(), - String.format(ENGLISH, "Clerk#%09d", clerkRandom.nextValue()), + "Clerk#" + padStart(Integer.toString(clerkRandom.nextValue()), 9, '0'), 0, commentRandom.nextValue()); } diff --git a/src/main/java/io/trino/tpch/Part.java b/src/main/java/io/trino/tpch/Part.java index e8dc870..c36786b 100644 --- a/src/main/java/io/trino/tpch/Part.java +++ b/src/main/java/io/trino/tpch/Part.java @@ -14,7 +14,7 @@ package io.trino.tpch; import static io.trino.tpch.GenerateUtils.formatMoney; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class Part @@ -113,9 +113,7 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, - "%d|%s|%s|%s|%s|%d|%s|%s|%s|", - partKey, + return buildLine(partKey, name, manufacturer, brand, diff --git a/src/main/java/io/trino/tpch/PartGenerator.java b/src/main/java/io/trino/tpch/PartGenerator.java index a49fa85..ad431f0 100644 --- a/src/main/java/io/trino/tpch/PartGenerator.java +++ b/src/main/java/io/trino/tpch/PartGenerator.java @@ -20,7 +20,6 @@ import static com.google.common.base.Preconditions.checkArgument; import static io.trino.tpch.GenerateUtils.calculateRowCount; import static io.trino.tpch.GenerateUtils.calculateStartIndex; -import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; public class PartGenerator @@ -143,8 +142,8 @@ private Part makePart(long partKey) return new Part(partKey, partKey, name, - String.format(ENGLISH, "Manufacturer#%d", manufacturer), - String.format(ENGLISH, "Brand#%d", brand), + "Manufacturer#" + manufacturer, + "Brand#" + brand, typeRandom.nextValue(), sizeRandom.nextValue(), containerRandom.nextValue(), diff --git a/src/main/java/io/trino/tpch/PartSupplier.java b/src/main/java/io/trino/tpch/PartSupplier.java index 6ae3ee7..ef1c8a2 100644 --- a/src/main/java/io/trino/tpch/PartSupplier.java +++ b/src/main/java/io/trino/tpch/PartSupplier.java @@ -14,7 +14,7 @@ package io.trino.tpch; import static io.trino.tpch.GenerateUtils.formatMoney; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class PartSupplier @@ -76,12 +76,6 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, - "%d|%d|%d|%s|%s|", - partKey, - supplierKey, - availableQuantity, - formatMoney(supplyCost), - comment); + return buildLine(partKey, supplierKey, availableQuantity, formatMoney(supplyCost), comment); } } diff --git a/src/main/java/io/trino/tpch/RandomPhoneNumber.java b/src/main/java/io/trino/tpch/RandomPhoneNumber.java index 6971fd4..fc6e8b5 100644 --- a/src/main/java/io/trino/tpch/RandomPhoneNumber.java +++ b/src/main/java/io/trino/tpch/RandomPhoneNumber.java @@ -13,7 +13,7 @@ */ package io.trino.tpch; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.padWithZeros; public class RandomPhoneNumber extends AbstractRandomInt @@ -33,11 +33,9 @@ public RandomPhoneNumber(long seed, int expectedRowCount) public String nextValue(long nationKey) { - return String.format(ENGLISH, - "%02d-%03d-%03d-%04d", - (10 + (nationKey % NATIONS_MAX)), - nextInt(100, 999), - nextInt(100, 999), - nextInt(1000, 9999)); + return padWithZeros(10 + (nationKey % NATIONS_MAX), 2) + '-' + + padWithZeros(nextInt(100, 999), 3) + '-' + + padWithZeros(nextInt(100, 999), 3) + '-' + + padWithZeros(nextInt(1000, 9999), 4); } } diff --git a/src/main/java/io/trino/tpch/Region.java b/src/main/java/io/trino/tpch/Region.java index 3f9fdfc..eb787bd 100644 --- a/src/main/java/io/trino/tpch/Region.java +++ b/src/main/java/io/trino/tpch/Region.java @@ -13,7 +13,7 @@ */ package io.trino.tpch; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class Region @@ -56,6 +56,6 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, "%d|%s|%s|", regionKey, name, comment); + return buildLine(regionKey, name, comment); } } diff --git a/src/main/java/io/trino/tpch/StringUtils.java b/src/main/java/io/trino/tpch/StringUtils.java new file mode 100644 index 0000000..bb6f402 --- /dev/null +++ b/src/main/java/io/trino/tpch/StringUtils.java @@ -0,0 +1,35 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.trino.tpch; + +import com.google.common.base.Joiner; + +import static com.google.common.base.Strings.padStart; + +public class StringUtils +{ + private static final Joiner LINE_JOINER = Joiner.on('|'); + + private StringUtils() {} + + public static String padWithZeros(long value, int length) + { + return padStart(Long.toString(value), length, '0'); + } + + public static String buildLine(Object... values) + { + return LINE_JOINER.join(values) + "|"; + } +} diff --git a/src/main/java/io/trino/tpch/Supplier.java b/src/main/java/io/trino/tpch/Supplier.java index 201fa18..01d3d56 100644 --- a/src/main/java/io/trino/tpch/Supplier.java +++ b/src/main/java/io/trino/tpch/Supplier.java @@ -14,7 +14,7 @@ package io.trino.tpch; import static io.trino.tpch.GenerateUtils.formatMoney; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.buildLine; import static java.util.Objects.requireNonNull; public class Supplier @@ -90,8 +90,7 @@ public String getComment() @Override public String toLine() { - return String.format(ENGLISH, - "%d|%s|%s|%d|%s|%s|%s|", + return buildLine( supplierKey, name, address, diff --git a/src/main/java/io/trino/tpch/SupplierGenerator.java b/src/main/java/io/trino/tpch/SupplierGenerator.java index 79b2647..748078e 100644 --- a/src/main/java/io/trino/tpch/SupplierGenerator.java +++ b/src/main/java/io/trino/tpch/SupplierGenerator.java @@ -20,7 +20,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static io.trino.tpch.GenerateUtils.calculateRowCount; import static io.trino.tpch.GenerateUtils.calculateStartIndex; -import static java.util.Locale.ENGLISH; +import static io.trino.tpch.StringUtils.padWithZeros; import static java.util.Objects.requireNonNull; public class SupplierGenerator @@ -175,7 +175,7 @@ private Supplier makeSupplier(long supplierKey) return new Supplier(supplierKey, supplierKey, - String.format(ENGLISH, "Supplier#%09d", supplierKey), + "Supplier#" + padWithZeros(supplierKey, 9), addressRandom.nextValue(), nationKey, phoneRandom.nextValue(nationKey),