diff --git a/.gitignore b/.gitignore index 2caab436965ed..828f219092375 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,7 @@ a.out *.pb.h *.pb.cc *_pb2.py + +# Compiled executables used for docker build +/docker/presto-cli-*-executable.jar +/docker/presto-server-*.tar.gz diff --git a/presto-native-execution/src/test/java/com/facebook/presto/nativeworker/ContainerQueryRunnerUtils.java b/presto-native-execution/src/test/java/com/facebook/presto/nativeworker/ContainerQueryRunnerUtils.java index 89f9c00cbe3e6..268ec713ba51d 100644 --- a/presto-native-execution/src/test/java/com/facebook/presto/nativeworker/ContainerQueryRunnerUtils.java +++ b/presto-native-execution/src/test/java/com/facebook/presto/nativeworker/ContainerQueryRunnerUtils.java @@ -30,12 +30,13 @@ import java.io.OutputStreamWriter; import java.io.StringReader; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.stream.Collectors; +import static com.google.common.collect.ImmutableList.toImmutableList; + public class ContainerQueryRunnerUtils { private ContainerQueryRunnerUtils() {} @@ -226,19 +227,18 @@ public static void createScriptFile(String filePath, String scriptContent) public static MaterializedResult toMaterializedResult(String csvData) throws IOException { - List columnTypes = new ArrayList<>(); - - // Parse CSV data using OpenCSV - ImmutableList> allRows = getLists(csvData); + List> allRows = parseCsvData(csvData); // Infer column types based on the maximum columns found - int maxColumns = allRows.stream().mapToInt(List::size).max().orElse(0); + int maxColumns = allRows.stream().mapToInt(row -> row.size()).max().orElse(0); + ImmutableList.Builder columnTypesBuilder = ImmutableList.builder(); for (int i = 0; i < maxColumns; i++) { final int columnIndex = i; - columnTypes.add(inferType(allRows.stream() + columnTypesBuilder.add(inferType(allRows.stream() .map(row -> columnIndex < row.size() ? row.get(columnIndex) : "") .collect(Collectors.toList()))); } + List columnTypes = columnTypesBuilder.build(); // Convert all rows to MaterializedRow ImmutableList.Builder rowsBuilder = ImmutableList.builder(); @@ -249,26 +249,17 @@ public static MaterializedResult toMaterializedResult(String csvData) } rowsBuilder.add(new MaterializedRow(5, valuesBuilder.build())); } - - ImmutableList materializedRows = rowsBuilder.build(); + List rows = rowsBuilder.build(); // Create and return the MaterializedResult - return new MaterializedResult(materializedRows, columnTypes); + return new MaterializedResult(rows, columnTypes); } - private static ImmutableList> getLists(String csvData) + private static List> parseCsvData(String csvData) throws IOException { CSVReader reader = new CSVReader(new StringReader(csvData)); - List records = reader.readAll(); - - // Collect all rows as lists of strings - ImmutableList.Builder> allRowsBuilder = ImmutableList.builder(); - for (String[] record : records) { - allRowsBuilder.add(ImmutableList.copyOf(record)); - } - ImmutableList> allRows = allRowsBuilder.build(); - return allRows; + return reader.readAll().stream().map(ImmutableList::copyOf).collect(toImmutableList()); } private static Type inferType(List values) @@ -305,9 +296,6 @@ else if (isBoolean) { private static Object convertToType(String value, Type type) { - if (value.isEmpty()) { - return null; - } if (type.equals(VarcharType.VARCHAR)) { return value; }